我有資料,如下所示的 Box ID 串列:
boxID DateTime
----- --------
001 2021-06-24 00:00:01
001 2021-06-24 00:00:02
001 2021-06-24 00:00:04
001 2021-06-24 00:00:05
001 2021-06-24 00:00:06
911 2021-06-24 00:00:07
911 2021-06-24 00:00:09
911 2021-06-24 00:00:10
001 2021-06-24 00:00:11
001 2021-06-24 00:00:12
100 2021-06-24 00:00:13
100 2021-06-24 00:00:14
001 2021-06-24 00:00:15
911 2021-06-24 00:00:16
911 2021-06-24 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/shujuku/422588.html
標籤:
上一篇:sql中的條件選擇
