KQL:去重、记录优先级和排序

问题描述 投票:0回答:1

我是 Kusto 的新手,正在尝试弄清楚如何在 KQL 中进行重复数据删除。我在 Kusto 中有一个表用于存储帐户信息。对于某些帐户,该表有 2 行:一行 update_c == true,另一行 update_c == false。我想编写一个 KQL 脚本,在这些重复帐户的情况下,该脚本将保留 update_c == true 的行。换句话说,我正在尝试对这个数据集进行重复数据删除,当每个帐户有 2 行时,它会在 update_c == true 的情况下幸存下来。如果每个透视帐户只有一行,则无论 update_c vlaues 如何,它都会幸存下来。

账户ID 更新_c
12 真实
12

有人能帮我学习如何删除重复数据吗?

sorting duplicates kql azure-data-explorer summarize
1个回答
0
投票

这应该可以。

datatable
| extend updated_c_int = toint(updated_c)
| summarize arg_max(updated_c_int, *) by accountId
| project accountId, updated_c
  • extend updated_c_int = toint(updated_c)
    :将布尔值
    updated_c
    转换为整数。
    true
    变为 1,
    false
    变为 0。
  • summarize arg_max(updated_c_int, *) by accountId
    :对于每个
    accountId
    ,获取具有最高
    updated_c_int
    值的行。如果存在平局,
    arg_max
    将返回它遇到的第一行。
  • project accountId, updated_c
    :仅选择最终输出中的
    accountId
    updated_c
    列。

根据您的示例输入,此查询应返回:

accountId    updated_c
12           true
© www.soinside.com 2019 - 2024. All rights reserved.