我有如下所示的数据:
ID EventDateTime
1656891 2015-04-21 23:54:36.443
1656891 2015-04-22 00:28:01.313
1656891 2015-04-23 16:09:55.440
1656891 2015-04-26 19:17:30.140
1656891 2015-04-26 21:50:45.167
1668876 2015-04-23 13:28:27.827
1668876 2015-04-23 15:57:15.393
1718737 2015-04-16 11:27:17.143
1743848 2015-04-16 03:15:50.900
1743848 2015-04-16 11:28:09.383
1743848 2015-04-21 17:32:47.610
1743848 2015-04-22 01:06:22.707
1746479 2015-04-16 18:36:26.587
1746479 2015-04-18 16:04:12.410
1746479 2015-04-20 21:01:50.907
1746479 2015-04-20 23:26:56.743
我需要SELECT
给定ID
的EventDateTime
列上的DATEDIFF(MINUTE...)
。 例如,对于1656891
,我应该得到7076
. 有没有办法为每个ID
计算这个,这样我就会得到这样的输出:
ID Minutes
1656891 7076
... ...
我找到了其他一些关于迭代的帖子,但查询最终需要一分钟多的时间才能运行,所以我的代码显然效率很低。
我猜你想要每个id的最早值和最新值之间的分钟差。 这至少在值 7076 的范围内。
select id, datediff(minute, min(eventdatetime), max(eventdatetime) ) as minutes
from table t
group by id;