Azure Application Insights 查询 - 如何计算总数的百分比
Azure Application Insights Query - How to calculate percentage of total
我正在尝试在输出中创建一行 table 以计算项目总数的百分比:
Something like this:
ITEM | COUNT | PERCENTAGE
item 1 | 4 | 80
item 2 | 1 | 20
我可以轻松获得包含 ITEM 行和 COUNT 行的 table,但我无法弄清楚如何将总计(在本例中为 5)作为数字,以便我可以计算 % 列中的百分比.
someTable
| where name == "Some Name"
| summarize COUNT = count() by ITEM = tostring( customDimensions.["SomePar"])
| project ITEM, COUNT, PERCENTAGE = (C/?)*100
有什么想法吗?谢谢。
创建这样的查询有点麻烦。
我是根据 AI 中的 customEvents table 完成的。所以看看你是否可以根据你的具体情况进行调整。
您必须创建一个包含记录总数的 table,然后您必须加入此 table。由于您只能在公共列上加入,因此您需要一个始终具有相同值的列。我为此选择了 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_))
如果您需要过滤器,则必须将其应用于两个 tables。
这输出:
我觉得下面的更直观。只需使用虚拟 属性 扩展集合并对其进行连接...
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_))
甚至不需要加入或创建包含您的总计的 table
只需计算您的总数并将其保存在 let 中即可。
let totalEvents = toscalar(customEvents
| where timestamp > "someDate"
and name == "someEvent"
| summarize count());
然后您可以简单地在下一个 table 中添加一行,您需要通过以下方式计算百分比:
| extend total = totalEvents
这会在您的 table 中添加一个新列,其中填入您计算的总数。
之后,您可以按照其他两个答案中的描述计算百分比。
| extend percentages = todouble(count_)*100/todouble(total)
其中 count_ 是由您大概在添加百分比之前执行的汇总 count() 创建的列。
希望这也对某人有所帮助。
我正在尝试在输出中创建一行 table 以计算项目总数的百分比:
Something like this:
ITEM | COUNT | PERCENTAGE
item 1 | 4 | 80
item 2 | 1 | 20
我可以轻松获得包含 ITEM 行和 COUNT 行的 table,但我无法弄清楚如何将总计(在本例中为 5)作为数字,以便我可以计算 % 列中的百分比.
someTable
| where name == "Some Name"
| summarize COUNT = count() by ITEM = tostring( customDimensions.["SomePar"])
| project ITEM, COUNT, PERCENTAGE = (C/?)*100
有什么想法吗?谢谢。
创建这样的查询有点麻烦。
我是根据 AI 中的 customEvents table 完成的。所以看看你是否可以根据你的具体情况进行调整。
您必须创建一个包含记录总数的 table,然后您必须加入此 table。由于您只能在公共列上加入,因此您需要一个始终具有相同值的列。我为此选择了 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_))
如果您需要过滤器,则必须将其应用于两个 tables。
这输出:
我觉得下面的更直观。只需使用虚拟 属性 扩展集合并对其进行连接...
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_))
甚至不需要加入或创建包含您的总计的 table 只需计算您的总数并将其保存在 let 中即可。
let totalEvents = toscalar(customEvents
| where timestamp > "someDate"
and name == "someEvent"
| summarize count());
然后您可以简单地在下一个 table 中添加一行,您需要通过以下方式计算百分比:
| extend total = totalEvents
这会在您的 table 中添加一个新列,其中填入您计算的总数。 之后,您可以按照其他两个答案中的描述计算百分比。
| extend percentages = todouble(count_)*100/todouble(total)
其中 count_ 是由您大概在添加百分比之前执行的汇总 count() 创建的列。
希望这也对某人有所帮助。