一、基本概念
1、leftjoingroupby是什麼
leftjoingroupby是Kusto查詢語言中的一個操作符,用於在對兩個表進行連接時,將結果進行聚合併篩選
// 示例代碼 TableA | join kind=leftouter ( TableB | summarize CountB = count() by JoinKey ) on JoinKey | where CountB > 0 | project ColumnA, ColumnB
2、leftjoingroupby的作用和優勢
leftjoingroupby在進行表的連接同時,可以對結果進行聚合和篩選,可以大大簡化統計分析的流程,並提高查詢效率。
二、leftjoingroupby基礎用法
1、leftjoingroupby語法
leftjoingroupby的語法格式如下:
TableA | join kind=leftouter ( TableB | summarize Aggregates by Columns ) on JoinKeys | where FilterExpressions | project SelectColumns
其中,TableA和TableB為要連接的兩個表,JoinKeys為連接所用的鍵,FilterExpressions為篩選條件,SelectColumns為最後輸出的列。
2、leftjoingroupby示例代碼
下面是一個簡單的leftjoingroupby的示例:
let A = datatable (Id:int, Name:string) [ 1, "John", 2, "Bob", 3, "Lisa" ]; let B = datatable (Id:int, Course:string, Grade:int) [ 1, "Math", 88, 1, "English", 76, 2, "Math", 90, 3, "Art", 85 ]; A | join kind=leftouter ( B | summarize avg(Grade) by Id ) on Id | project Name, Course, Grade
以上代碼將輸出所有學生的姓名、所選科目以及該科目平均成績,如果學生沒選修任何科目,相應記錄中科目和成績將為空。
三、leftjoingroupby進階用法
1、leftjoingroupby和聚合操作
leftjoingroupby可以和聚合操作一起使用,來計算連接表中的聚合值。
let A = datatable (Id:int, Name:string) [ 1, "John", 2, "Bob", 3, "Lisa" ]; let B = datatable (Id:int, Course:string, Grade:int) [ 1, "Math", 88, 1, "English", 76, 2, "Math", 90, 3, "Art", 85 ]; A | join kind=leftouter ( B | summarize avg(Grade) by Id ) on Id | summarize avg(Grade), count() by Name
以上代碼將輸出每個學生的平均成績和選修科目數。
2、leftjoingroupby和多列連接
leftjoingroupby可以讓我們在連接兩個表時,使用多個鍵來進行連接。
let A = datatable (Id:int, Name:string) [ 1, "John", 2, "Bob", 3, "Lisa" ]; let B = datatable (Id:int, Course:string, Grade:int) [ 1, "Math", 88, 1, "English", 76, 2, "Math", 90, 3, "Art", 85 ]; let C = datatable (Course:string, Department:string) [ "Math", "Mathematics", "English", "Language", "Art", "Humanity" ]; A | join kind=leftouter ( B | summarize avg(Grade) by Id, Course ) on Id, Course | join kind=leftouter ( C ) on Course | project Name, Course, Department, avg_Grade = avg(Grade)
以上代碼將輸出每個學生所選修科目的平均成績以及該科目所屬的學院。
四、小結
通過上述的講解,我們可以看到,leftjoingroupby是一個非常方便的操作符,可以在連接表的同時進行聚合和篩選操作,可以大大簡化數據分析的流程。其進階用法也可以幫助我們更好地應對各種數據分析任務。
原創文章,作者:小藍,如若轉載,請註明出處:https://www.506064.com/zh-tw/n/186570.html