我已在“Azure Stream Analytics”工作中编写此代码。
SELECT
DateAdd(minute,-1,System.TimeStamp) AS WinStart,
System.TimeStamp AS WinEnd,
turnstile,
COUNT(*) AS entries
INTO [output-blobstorage]
FROM [input-iot] TIMESTAMP BY entrytime
GROUP BY turnstile, SlidingWindow (duration(second, 60))
我希望将“WinStart”和“WinEnd”截断为分钟。
例如:如果WinStart是“2018-06-08T18:15:01.5160000Z”,我想要“2018-06-08T18:15:00.0000000Z”
这是我的结果文件:
另一方面,我想把我的结果分组为“旋转门”和SlidingWindows,分钟。
但是现在我在第一列中都有了secound和mi-sec。
答案 0 :(得分:1)
也许组合两个 - 使用DatePart分解日期并使用DateTimeFromParts将其组合回来,并使用零作为秒和毫秒。
DATETIMEFROMPARTS(DATEPART(yyyy,WinStart),
DATEPART(mm,WinStart),DATEPART(dd,WinStart), DATEPART(hh,WinStart),
DATEPART(mi,WinStart), 0, 0) As WinStartRounded
或者你想要HoppingWindow而不是SlidingWindow?这样窗户就会对齐1分钟的边界:
谢谢,杰森
答案 1 :(得分:0)
我通过以下查询解决了这个问题
SELECT
DATETIMEFROMPARTS(
DATEPART(yyyy,DateAdd(minute,-1,System.TimeStamp)),
DATEPART(mm,DateAdd(minute,-1,System.TimeStamp)),
DATEPART(dd,DateAdd(minute,-1,System.TimeStamp)),
DATEPART(hh,DateAdd(minute,-1,System.TimeStamp)),
DATEPART(mi,DateAdd(minute,-1,System.TimeStamp)), 0, 0)
As WinStart,
DATETIMEFROMPARTS(
DATEPART(yyyy,System.TimeStamp),
DATEPART(mm,System.TimeStamp),
DATEPART(dd,System.TimeStamp),
DATEPART(hh,System.TimeStamp),
DATEPART(mi,System.TimeStamp), 0, 0) As WinEnd,
turnstile,
COUNT(*) AS entries
INTO [output-blobstorage]
FROM [input-iot] TIMESTAMP BY entrytime
GROUP BY
turnstile,
HoppingWindow (duration(second, 60),hop(second, 60))