将查询分别应用于表的每个部分

时间:2017-02-22 09:44:18

标签: sql-server tsql azure-sql-database

我需要对表中的每个行集(Azure SQL)运行一些查询:

ID    CustomerID     MsgTimestamp            Msg
-------------------------------------------------
1     123            2017-01-01 10:00:00     Hello
2     123            2017-01-01 10:01:00     Hello again
3     123            2017-01-01 10:02:00     Can you help me with my order
4     123            2017-01-01 11:00:00     Are you still there
5     456            2017-01-01 10:07:00     Hey I'm a new customer

我想要做的是提取"聊天会话"对于来自消息记录的每个客户,即,如果某人的两个连续消息之间的差距小于30分钟,则它们属于同一会话。我需要在新表中记录每个会话的开始和结束时间。在上面的示例中,客户123的第一个会话的开始和结束时间是10:00和10:02。

我知道我总是可以使用游标和临时表来实现这个目标,但我正在考虑利用任何预先构建的机制来达到更好的性能。请给我一些意见。

0 个答案:

没有答案