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

如何使用SQL按学生ID统计每个学生所属的不同小组数量

实现方案

方案1:仅输出每个学生的统计结果(1行对应1个学生,性能最优)

核心用GROUP BY按学生分组,搭配COUNT(DISTINCT)统计去重后的小组数量,自动过滤同一学生同小组的重复记录:

SELECT
  STUDENT,
  COUNT(DISTINCT `GROUP`) AS `COUNT OF GROUP FOR EACH STUDENT`
FROM
  替换为你的实际表名
GROUP BY
  STUDENT;

运行后输出结果如下:

STUDENTCOUNT OF GROUP FOR EACH STUDENT
ST 11
ST 22
ST 32

方案2:保留原表所有行,每行附带对应学生的统计结果(和你给出的样例格式完全一致)

用窗口函数实现,不需要分组聚合,保留原表所有行:

SELECT
  `GROUP`,
  STUDENT,
  COUNT(DISTINCT `GROUP`) OVER (PARTITION BY STUDENT) AS `COUNT OF GROUP FOR EACH STUDENT`
FROM
  替换为你的实际表名;

注意事项

  • GROUP是SQL保留关键字,查询时需要转义:MySQL用反引号`包裹,SQL Server用方括号[]包裹,Oracle用双引号""包裹即可。
  • 两种写法都已经自动处理了同一学生同小组的重复记录,不需要额外加去重逻辑。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.10.06 20:06:02