【发布时间】:2020-11-04 00:16:24
【问题描述】:
我需要获取每天至少离线 20 分钟的用户列表。这是我的数据
我有这个起始查询,但我被困在如何对offline_mins 的差异求和,即需要在 where 子句中添加“and sum(offline_mins)>=20”
SELECT
userid,
connected,
LAG(recordeddt) OVER(PARTITION BY userid
ORDER BY userid,
recordeddt) AS offline_period,
DATEDIFF(minute, LAG(recordeddt) OVER(PARTITION BY userid
ORDER BY userid,
recordeddt),recordeddt) offline_mins
FROM device_data where connected=0;
提前致谢。
【问题讨论】:
-
请出示您的预期结果。
-
(1) 每个用户每 5 分钟是否总是有一条记录? (2) 在“每天”下线至少20分钟的用户中定义“每天”。
-
每天=24 小时。可能不是每 5 分钟记录一次,但是当用户最终上线时,会有一条 connected=1 的记录
标签: sql sql-server datetime gaps-and-islands date-arithmetic