Azure data explorer 同时使用';独特的';和';项目';
在Azure Data Explorer中,我尝试同时使用“project”和“distinct”关键字。 表记录有3个字段,我想在其中使用“项目”: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
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
结果: