首页 > 解决方案 > Kusto 查询如何将表中的每一行作为参数进行迭代以在另一个表中查询?

问题描述

我有两个 'PlayersNames' 和 'PlayerSpendMondy' 我怎样才能迭代 'PlayersNames' 获取每个 PlayerName 然后得到每个玩家花了多少钱?Kusto 查询是否支持此功能?

let PlayerName = datatable(name:string)
[
   'player1',
   'player2',
   'player3',
];
let PlayerSpendMoney = datatable(name:string, spendMoney:int)
[
    'player1', 1,
    'player2', 3,
    'player3', 4,
    'player1', 1,
    'player2', 5,
    'player3', 1,
    'player3', 1,
]

标签: kql

解决方案


您可以使用joinoperator来实现。

例如:

let PlayerName = datatable(name:string)
[
   'player1',
   'player2',
   'player3',
]
;
let PlayerSpendMoney = datatable(name:string, spendMoney:int)
[
    'player1', 1,
    'player2', 3,
    'player3', 4,
    'player1', 1,
    'player2', 5,
    'player3', 1,
    'player3', 1,
]
;
PlayerName
| join kind=leftouter  (
    PlayerSpendMoney
    | summarize sum(spendMoney) by name
) on $left.name == $right.name
| project name, sum_spendMoney
| name    | sum_spendMoney |
|---------|----------------|
| player1 | 2              |
| player2 | 8              |
| player3 | 6              |

推荐阅读