0
我想在流分析計算連續重複的值。例如,我有一個傳感器,每秒記錄0或1的值。我想設置1分鐘的滑動窗口並計算是否有超過30個連續的0。我不能在小組條款中計入0,因爲它們可能不是連續的。例如,如果我有:計數連續重複值
ID Value TimeStamp
1, 1, second 1
2, 1, second 2
3, 1, second 3
4, 1, second 4
5, 1, second 5
6, 1, second 6
7, 1, second 7
8, 0, second 8
9, 0, second 9
10, 0, second 10
11, 0, second 11
12, 0, second 12
13, 0, second 13
14, 0, second 14
15, 1, second 15
16, 1, second 16,
17, 1, second 17
18, 1, second 18
我想獲得:
MinId Value Count
1, 1, 7
8, 0, 7
15,1, 4
,甚至更好,我想獲得在同一分鐘, 那裏有(最大連續1的分別爲7和最大的連續的0,其中7)
MinId Value MaxCount
1, 1, 7
8, 0, 7
在SQL我會做這樣的事情:
select grp, value, min(id), max(id), count(*) as cnt, max(fecha) as Fecha
from (select t.*,
(row_number() over (order by id) - row_number() over (partition by value order by id)
) as grp
from [StockSensor] t
) t
group by grp, value
order by min(id);
隨着流分析你有LAG的功能,但我不能找到一種方法來計算的連續號碼。
任何想法?
需要更多詳細信息:https://spaghettidba.com/2015/04/24/how-to-post-a-t-sql-question-on-a-public-forum/ – TheGameiswar