我有資料,一個盒子ID的串列,如下所示:
我有資料,一個盒子ID的串列。
boxID DateTime
----- --------
001 20210624 00: 00: 01
001 20210624 00: 00: 02
001 20210624 00: 00: 04
001 20210624 00: 00: 05
001 20210624 00: 00: 06
911 20210624 00: 00: 07
911 20210624 00: 00: 09
911 20210624 00: 00: 10
001 20210624 00: 00: 11
001 20210624 00: 00: 12
100 20210624 00: 00: 13
100 20210624 00: 00: 14
001 20210624 00: 00: 15
911 20210624 00: 00: 16
911 20210624 00: 00: 17
我需要計算在改變boxID后它們被使用了多少次?
我的預期回報是:
boxID used
----- -----
001 3
911 2
100 1
我使用的是SQL Server 2008,所以我不能使用LAG()函式。
是否有其他函式可以幫助我解決這個問題?
如果有任何幫助,我們將不勝感激,謝謝你。
uj5u.com熱心網友回復:
使用行數差異的方法:
WITH cte AS (
SELECT *, ROW_NUMBER() OVER (ORDER BY DateTime) rn1,
ROW_NUMBER() OVER(PARTITION BY boxID ORDER BY DateTime) rn2
FROM yourTable
)
SELECT boxID, COUNT(DISTINCT rn1 - rn2) As used
FROM cte
GROUP BY boxID。
轉載請註明出處,本文鏈接:https://www.uj5u.com/qianduan/314798.html
標籤:
