You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

如何在Kusto中按条件聚合求和,新增totalExamsTaken列?

可以实现,以下是具体的Kusto查询方案

方案一:先统计再关联(推荐,性能更优)

通过先统计学生每学年的考试次数,再关联学生基本信息,避免处理大量重复数据:

// 统计每个学生每学年的考试总次数
let exam_yearly_counts = StudentExams
| summarize totalExamsTaken = count() by studentID, schoolYear;

// 关联学生信息与统计结果,输出目标列
StudentInfo
| join kind=inner exam_yearly_counts on studentID
| project studentID, studentName, age, gender, schoolYear, totalExamsTaken
| sort by studentID, schoolYear desc

方案二:使用分区统计(基于原有查询修改)

如果需要基于你现有的查询逻辑调整,可以用partition by实现分区统计,再去重得到唯一行:

StudentInfo
| lookup StudentExams on studentID
// 按学生ID和学年分区,统计该分区内的考试次数
| partition by studentID, schoolYear (
    extend totalExamsTaken = count()
)
// 去重保留每个学生每学年的唯一记录
| distinct studentID, studentName, age, gender, schoolYear, totalExamsTaken
| sort by studentID, schoolYear desc

补充说明

  • 方案一用summarize先聚合统计,再关联学生信息,性能更高效,适合数据量较大的场景。
  • 如果需要保留所有学生(包括无考试记录的),可以将join kind=inner改为join kind=leftouter,并添加| extend totalExamsTaken = coalesce(totalExamsTaken, 0)将空值转为0。

内容的提问来源于stack exchange,提问作者superninja

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.07.17 02:32:41