【发布时间】:2017-07-11 12:12:30
【问题描述】:
我正在使用 Azure 流分析作业处理数据流,该作业将使用 T SQL 查询。我有以下要求:
我可以通过使用case 和sum 语句来做到这一点,但是我有很多国家和问题(L3),所以我可以使用任何枢轴选项吗?
【问题讨论】:
标签: tsql azure-stream-analytics
我正在使用 Azure 流分析作业处理数据流,该作业将使用 T SQL 查询。我有以下要求:
我可以通过使用case 和sum 语句来做到这一点,但是我有很多国家和问题(L3),所以我可以使用任何枢轴选项吗?
【问题讨论】:
标签: tsql azure-stream-analytics
您可以使用如下方式查询:
Select * from (
Select Co_nm, TimePeriod, CONCAT(L3, ISO_Cntry_Nm) as L3Country, [No of issues]
from #yourtable
) a
pivot (max([No of issues]) for L3Country in ([Issue 1Great Britain], [Issue 1India],[Issue 1America],[Issue 2Great Britain], [Issue 2India],[Issue 2America] ) ) p
【讨论】:
最灵活的方法是使用 collect() 来获取事件数组,并将其传递给 JavaScript UDF 以执行枢轴。
WITH EventCollection AS
(
SELECT collect() AS allEvents
FROM input TIMESTAMP BY timeperiod
GROUP BY System.Timestamp
),
PivotRecord AS
(
SELECT udf.getPivotRecord(allEvents) AS record
FROM EventCollection
)
SELECT record.*
INTO output
FROM PivotRecord
例如处理数组的 JavaScript UDF,参见这篇博文Using Azure Stream Analytics JavaScript UDF to lookup values in JSON array。
【讨论】: