Azure Application Insights Query - How to calculate percentage of total

I think following is more intuitive. Just extend the set with a dummy property and do a join on that...

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

It is not even necessary to do a join or create a table containing your totals Just calculate your total and save it in a let like so.

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

then you can simply add a row to your next table, where you need the percentage calcualtion by doing:

| extend total = totalEvents

This will add a new column to your table filled with the total you calculated. After that you can calculate the percentages as described in the other two answers.

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

where count_ is the column created by your summarize count() which you presumably do before adding the percentages.

Hope this also helps someone.


It's a bit messy to create a query like that.

I've done it bases on the customEvents table in AI. So take a look and see if you can adapt it to your specific situation.

You have to create a table that contains the total count of records, you then have to join this table. Since you can join only on a common column you need a column that has always the same value. I choose appName for that.

So the whole query looks like:

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

If you need a filter you have to apply it to both tables.

This outputs:

enter image description here