Azure data explorer 同时使用';独特的';和';项目';

Azure data explorer 同时使用';独特的';和';项目';,azure-data-explorer,kql,Azure Data Explorer,Kql,在Azure Data Explorer中,我尝试同时使用“project”和“distinct”关键字。 表记录有3个字段,我想在其中使用“项目”: 牛名 牛仔 科纳姆 牛标 但表中还有许多其他字段,如日期、度量等,我不想返回 Cows | project CowName, CowType, CowNum, CowLabel 但是,我想避免CowName和CowNum的重复记录,所以我包括了 Cows | project CowName, CowType, CowNum, CowLabel

在Azure Data Explorer中,我尝试同时使用“project”和“distinct”关键字。 表记录有3个字段,我想在其中使用“项目”:

  • 牛名
  • 牛仔
  • 科纳姆
  • 牛标
  • 但表中还有许多其他字段,如日期、度量等,我不想返回

    Cows
    | project CowName, CowType, CowNum, CowLabel
    
    但是,我想避免CowName和CowNum的重复记录,所以我包括了

    Cows
    | project CowName, CowType, CowNum, CowLabel
    | distinct CowName, CowNum
    
    但当我这样做时,返回的唯一列是CowName和CowNum。我现在完全缺少CowType和CowLabel

    有没有一种方法可以同时使用“project”和“distinct”而不相互干扰? 我应该采取不同的方法吗

    您可以执行以下操作:

    Cows
    | distinct CowName, CowType, CowNum
    
    或者,如果您不想拥有CowType的不同值,只想拥有它的任何值:

    Cows
    | summarize any(CowType) by CowName, CowNum
    
    参考文献:
    汇总运算符:
    不同运算符:
    any()聚合函数:

    您可以使用

    | summarize any(CowType, CowLabel) by CowName, CowNum
    
    要可视化这将如何工作,请使用以下示例表/查询:

    let CowTable = datatable(CowNum:int, CowName:string, CowType:string, CowLabel:string, DontWantThis:int) 
    [
       1, "Bob", "Bull", "label1", 99,
       2, "Tipsy", "Heifer", "label1", 98,
       3, "Milly", "Heifer", "label2", 99,
       4, "Bob", "Bull", "label2", 87,
       4, "Bob", "Bull", "label2", 77,
       2, "Hanna", "Heifer", "label1", 98,
    ];
    CowTable
    | summarize any(CowType, CowLabel) by CowName, CowNum
    
    结果:

    注意,我们没有看到CowNum 4列出两次,但是我们确实看到CowNum 2列出两次;这是因为这些行在CowName和CowNum方面是唯一的。我们还看到Bob列出了两次(不是三次);这是因为有2个Bob条目在CowName/CowNum方面是唯一的,但有2个Bob条目在CowName/CowNum方面不是唯一的

    如果您确实只想要CowName唯一且CowNum也不同的结果,您可以通过两步总结完成:

    CowTable
    | summarize any(CowName, CowType, CowLabel) by CowNum
    | summarize any(CowNum, any_CowType, any_CowLabel) by any_CowName
    //normalize column names
    | project CowNum = any_CowNum, CowName = any_CowName, CowType = any_any_CowType, CowLabel = any_any_CowLabel
    
    结果: