Ich möchte in der Stream-Analyse fortlaufend wiederholte Werte zählen. Ich habe zum Beispiel einen Sensor, der jede Sekunde Werte von 0 oder 1 aufzeichnet. Ich möchte ein gleitendes Fenster von 1 Minute setzen und zählen, wenn ich mehr als 30 aufeinanderfolgende Nullen habe. Ich kann keine Nullen in einer Gruppenklausel zählen, da sie möglicherweise nicht aufeinanderfolgend sind. ZB Wenn ich habe:Zähle fortlaufende wiederholte Werte im Stream Analytics
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
Ich mag erhalten:
MinId Value Count
1, 1, 7
8, 0, 7
15,1, 4
oder noch besser, würde Ich mag, dass in der gleichen Minute erhalten, dort, wo (maximal konsekutive 1 waren 7 und maximal aufeinanderfolgenden 0-en, wo 7)
MinId Value MaxCount
1, 1, 7
8, 0, 7
In SQL würde ich so etwas tun:
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);
Mit Stream Analytics haben Sie LAG-Funktion, aber ich kann keine Möglichkeit finden, die fortlaufenden Nummern zu zählen.
Irgendwelche Ideen?
benötigen weitere Informationen: https: //spaghettidba.com/2015/04/24/how-to-post-a-t-sql-question-on-a-public-forum/ – TheGameiswar