仍在学习 SQL,但我正在尝试查看是否有任何客户的时间范围彼此相差 24 小时之内。因此,在此示例中,ID 1 和 4 满足此条件。
CustID Date
1 2018-04-10 11:21:00.000
1 2018-03-05 18:14:00.000
1 2018-03-05 22:53:00.000
2 2018-04-10 11:21:00.000
2 2018-03-27 14:57:00.000
2 2018-04-04 20:00:00.000
3 2018-04-10 11:21:00.000
3 2018-02-10 11:21:00.000
3 2018-04-24 11:29:00.000
4 2018-04-10 11:21:00.000
4 2018-04-10 11:20:00.000
4 2018-04-24 11:29:00.000
我正在考虑做类似的事情
SELECT CustId
From Cars c
CROSS APPLY(
SELECT Date
FROM Cars
Where Date != c.Date)
WHERE Date - c.Date < 24 hours
最佳答案
使用lag()
:
select distinct custid
from (select c.*,
lag(c.date) over (partition by c.custid order by c.date) as prev_date
from cars c
) c
where date < dateadd(hour, 24, prev_date);
关于sql - 查找 SQL Server 中特定列中的每一行之间的时间差,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/50707616/