一、基本概念
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/n/186570.html
微信扫一扫
支付宝扫一扫