Azure Application Insights查询-如何计算总百分比

ha5z0ras  于 2022-12-14  发布在  其他
关注(0)|答案(4)|浏览(140)

我正在尝试在输出表中创建一行,以计算项目总数的百分比:

Something like this:
ITEM   |   COUNT   |   PERCENTAGE
item 1 |     4     |   80
item 2 |     1     |   20

我可以很容易地得到一个包含ITEM和COUNT行的表,但我不知道如何将total(在本例中为5)作为一个数字,以便在%列中计算百分比。

someTable
| where name == "Some Name"
| summarize COUNT = count() by ITEM = tostring( customDimensions.["SomePar"])
| project ITEM, COUNT, PERCENTAGE = (C/?)*100

有什么想法吗?谢谢。

cqoc49vn

cqoc49vn1#

创建这样的查询有点混乱。
我是基于人工智能中的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_))

如果需要筛选器,则必须将其应用于两个表。
这将输出:

mzaanser

mzaanser2#

它甚至不需要做一个连接或创建一个表包含您的总数只是计算您的总数并保存在一个字母像这样

let totalEvents = toscalar(customEvents
| where timestamp > "someDate"
    and name == "someEvent"
| summarize count());

然后,您只需在下一个需要百分比计算的表中添加一行,方法是:

| extend total = totalEvents

这将在表格中添加一个新列,其中填入您计算的合计。然后,您可以按照其他两个答案中的说明计算百分比。

| extend percentages = todouble(count_)*100/todouble(total)

其中count_是由summary count()创建的列,您可能会在添加百分比之前执行此操作。
希望这也能对某些人有所帮助。

oxiaedzo

oxiaedzo3#

我认为下面更直观。只要用一个虚拟属性扩展集合,然后在上面做一个连接...

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_))
ttvkxqim

ttvkxqim4#

这也可能奏效:

someTable
| summarize count() by item
| as T 
| extend percent = 100.0*count_/toscalar(T | summarize sum(count_)) 
| sort by percent desc 
| extend row_cumsum(percent)

相关问题