mpn*_*nap 6 azure-application-insights ms-app-analytics
我正在尝试在输出表中创建一行来计算总项目的百分比:
Something like this:
ITEM | COUNT | PERCENTAGE
item 1 | 4 | 80
item 2 | 1 | 20
Run Code Online (Sandbox Code Playgroud)
我可以很容易地获得一个包含ITEM和COUNT行的表,但我无法弄清楚如何获得总数(在这种情况下为5)作为数字,因此我可以计算列%的百分比.
someTable
| where name == "Some Name"
| summarize COUNT = count() by ITEM = tostring( customDimensions.["SomePar"])
| project ITEM, COUNT, PERCENTAGE = (C/?)*100
Run Code Online (Sandbox Code Playgroud)
有任何想法吗?谢谢.
创建这样的查询有点麻烦.
我已经基于AI中的customEvents表完成了它.所以,看看你是否可以根据自己的具体情况进行调整.
您必须创建一个包含记录总数的表,然后您必须加入此表.由于您只能加入公共列,因此需要一个始终具有相同值的列.我为此选择appName.
所以整个查询看起来像:
let totalEvents = customEvents
// | where name contains "Opened form"
| summarize count() by appName
| project appName, count_ ;
customEvents
// | where name contains "Opened form"
| join kind=leftouter totalEvents on appName
| summarize count() by name, count_
| project name, totalCount = count_ , itemCount = count_1, percentage = (todouble(count_1) * 100 / todouble(count_))
Run Code Online (Sandbox Code Playgroud)
如果需要过滤器,则必须将其应用于两个表.
这输出:
小智 5
我认为跟随更为直观。只需使用虚拟属性扩展集合并对其进行连接...
requests
| summarize count()
| extend a="b"
| join (
requests
| summarize count() by name
| extend a="b"
) on a
| project name, percentage = (todouble(count_1) * 100 / todouble(count_))
Run Code Online (Sandbox Code Playgroud)
甚至不需要进行连接或创建包含总计的表,只需计算总计并将其保存在像这样的 let 中。
let totalEvents = toscalar(customEvents
| where timestamp > "someDate"
and name == "someEvent"
| summarize count());
Run Code Online (Sandbox Code Playgroud)
然后您可以简单地在下一个表中添加一行,您需要通过执行以下操作来计算百分比:
| extend total = totalEvents
Run Code Online (Sandbox Code Playgroud)
这将在您的表格中添加一个新列,其中填充您计算的总计。之后,您可以按照其他两个答案中的描述计算百分比。
| extend percentages = todouble(count_)*100/todouble(total)
Run Code Online (Sandbox Code Playgroud)
其中 count_ 是您汇总 count() 创建的列,您可能在添加百分比之前执行此操作。
希望这也能帮助某人。
| 归档时间: |
|
| 查看次数: |
2993 次 |
| 最近记录: |