我们将通过应用程序洞察从我们的应用程序收集使用指标(通过customEvents表示customMeasurements)。如果我们的(窗口)服务启动,则收集数据,然后通过计时器在每日基础上收集数据。
我知道应用见解不适用于"在场所"软件,但我们无论如何都要这样做; - )
因此,我们从客户端安装的所有服务中获取数据。每个客户端都有一个唯一ID(GUID),允许我们按客户分组。 (我们不知道哪个客户支持这个指南,它只是"分组"客户的价值)
事件如下所示:
我已经获得了1和2,但不知道如何总结最大值......
演示我尝试做什么我在SQL中添加了一个示例:
CREATE TABLE [dbo].[metricData]
(
[RecId] [int] IDENTITY(1,1) NOT NULL,
[customerId] [int],
[metricValue1] [int],
[metricValue2] [int]
)
INSERT INTO [dbo].[metricData] VALUES ( 1234, 1,1)
INSERT INTO [dbo].[metricData] VALUES ( 1234, 1,2)
INSERT INTO [dbo].[metricData] VALUES ( 1234, 1,1)
INSERT INTO [dbo].[metricData] VALUES ( 2345, 6,4)
INSERT INTO [dbo].[metricData] VALUES ( 2345, 8,7)
INSERT INTO [dbo].[metricData] VALUES ( 3456, 1,1)
INSERT INTO [dbo].[metricData] VALUES ( 3456, 1,2)
INSERT INTO [dbo].[metricData] VALUES ( 3456, 1,1)
INSERT INTO [dbo].[metricData] VALUES ( 4576, 20,30)
select sum(maxVal1),sum(maxVal2) from
(
select max(metricValue1) as maxVal1, max(metricValue2) as maxVal2 from metricData
group by customerId
) t
基本上也像这里一样问,但对于应用见解:-) SQL: SUM the MAX values of results returned
感谢任何提示
答案 0 :(得分:2)
我得到了一个解决方案:
customEvents
|where name == "usageMetrics"
|extend cn = tostring(customDimensions.["CustomerId"])
|summarize maxValTotal= max(toint(customMeasurements.['metric_Total'])), maxValFree= max(toint(customMeasurements.['metric_Free'])) by cn
|summarize dcount(cn),sum(maxValTotal), sum(maxValFree)
|render barchart kind=unstacked
希望这有助于其他人,因为这种查询语言不那么直观......
无论如何,请告诉我你是否有更好的解决方案来解决这个问题...