如何编写Kusto查询以仅选择一个字段中具有唯一值的行

Nic*_*ian 1 azure-log-analytics kusto azure-data-explorer

输入以下内容:

let t1 = datatable(id:string, col1:string, col2:string)
[
    '1', 'col1_1', 'col2_1',
    '2', 'col1_2', 'col2_2',
    '3', 'col1_3', 'col2_3',
    '4', 'col1_4', 'col2_4',
    '1', 'col1_1', 'col2_11',
];
t1 
| distinct id, col1
Run Code Online (Sandbox Code Playgroud)

我需要一个查询,该查询将仅选择“ id”字段中具有唯一值的行。我了解有两种可能的输出:

输出1:

'1', 'col1_1', 'col2_1',
'2', 'col1_2', 'col2_2',
'3', 'col1_3', 'col2_3',
'4', 'col1_4', 'col2_4',
Run Code Online (Sandbox Code Playgroud)

输出2:

'2', 'col1_2', 'col2_2',
'3', 'col1_3', 'col2_3',
'4', 'col1_4', 'col2_4',
'1', 'col1_11', 'col2_11',
Run Code Online (Sandbox Code Playgroud)

小智 6

您可以使用any()聚合函数根据“ id”列中的唯一值来选择col1和col2值。

let t1 = datatable(id:string, col1:string, col2:string)
[
    '1', 'col1_1', 'col2_1',
    '2', 'col1_2', 'col2_2',
    '3', 'col1_3', 'col2_3',
    '4', 'col1_4', 'col2_4',
    '1', 'col1_1', 'col2_11',
];
t1 
| summarize any(col1), any(col2) by id
Run Code Online (Sandbox Code Playgroud)

  • 请注意,如果您想确保从同一记录中选择两个值(例如“col1_1”、“col2_1”而不是“col1_1”、“col2_11”),则可以使用“any(col1, col2)” `。 (2认同)