使用CASE语句的Azure流分析自定义输出数据

问题描述

我在统计每个区域的用户时遇到问题,每个用户都会将其区域设置发送到服务器。有人可以帮助我实现这一目标,谢谢。 输出流分析应该是这样的:

{
   "sessionId": "sessionId1",-->group by sessionId
   "data": {
        "north America": 0,"South America": 0,"Europe": 0,"Russia": 1,"Africa": 2,"India": 0,"China": 2,"Oceania": 0,}
},{
   "sessionId": "sessionId2","Russia": 0,"Africa": 1,"China": 0,}
}

输入数据:

[{"sessionId":"Session1","deviceid":"deviceTest1","locale":"Russia"},{"sessionId":"Session1","deviceid":"deviceTest2","locale":"China"},"deviceid":"deviceTest3","deviceid":"deviceTest4","locale":"Africa"},"deviceid":"deviceTest5",{"sessionId":"Session2","deviceid":"deviceTest6","locale":"Africa"}]

解决方法

我尝试了serval SQL查询,但无法满足您的要求。我认为这是不可能的,因为您需要按sessionId分组,但是没有Aggregate Functions可以得到这种格式。

"data": {
        "North America": 0,"South America": 0,"Europe": 0,"Russia": 0,"Africa": 1,"India": 0,"China": 0,"Oceania": 0,}