10

合計アイテムのパーセンテージを計算する出力テーブルに行を作成しようとしています:

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

ITEM と COUNT の行を含むテーブルを簡単に取得できますが、合計 (この場合は 5) を数値として取得する方法がわからないため、列 % でパーセンテージを計算できます。

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

何か案は?ありがとうございました。

4

3 に答える 3

8

そのようなクエリを作成するのは少し面倒です。

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

フィルターが必要な場合は、両方のテーブルに適用する必要があります。

これは以下を出力します:

ここに画像の説明を入力

于 2016-10-14T08:57:33.463 に答える
3

結合を行ったり、合計を含むテーブルを作成したりする必要さえありません。合計を計算して、そのように let に保存するだけです。

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

次に、次のテーブルに行を追加するだけで、パーセンテージの計算が必要になります。

| extend total = totalEvents

これにより、計算した合計で満たされた新しい列がテーブルに追加されます。その後、他の2つの回答で説明されているようにパーセンテージを計算できます。

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

ここで、count_ は、パーセンテージを追加する前に行うと思われる集計 count() によって作成された列です。

これも誰かに役立つことを願っています。

于 2020-11-18T12:30:30.860 に答える