深入理解SQL中的GROUP BY x, y语句
SQL中的GROUP BY x
语句用于根据指定列x的公共值对记录进行分组。扩展此概念,GROUP BY x, y
表示更细粒度的分组,其中记录不仅根据列x中的值进行分组,还根据列y中的值进行分组。
工作原理
这种分组有效地将数据分成不同的集合。每个集合包含对x和y都具有相同值的记录。例如:
GROUP BY Subject
根据Subject
列中的唯一值对数据进行分类。GROUP BY Subject, Semester
进一步根据Subject
和Semester
列中值的唯一组合划分这些组。示例
考虑以下Subject_Selection
表:
--------- ---------- ----------
| Subject | Semester | Attendee |
--------- ---------- ----------
| ITB001 | 1 | John |
| ITB001 | 1 | Bob |
| ITB001 | 1 | Mickey |
| ITB001 | 2 | Jenny |
| ITB001 | 2 | James |
| MKB114 | 1 | John |
| MKB114 | 1 | Erica |
--------- ---------- ----------
应用GROUP BY Subject
对科目进行分组并计算出席人数:
select Subject, Count(*)
from Subject_Selection
group by Subject
输出:
--------- -------
| Subject | Count |
--------- -------
| ITB001 | 5 |
| MKB114 | 2 |
--------- -------
扩展到GROUP BY Subject, Semester
:
select Subject, Semester, Count(*)
from Subject_Selection
group by Subject, Semester
输出:
--------- ---------- -------
| Subject | Semester | Count |
--------- ---------- -------
| ITB001 | 1 | 3 |
| ITB001 | 2 | 2 |
| MKB114 | 1 | 2 |
--------- ---------- -------
此结果表明,有三名学生在第一学期选修ITB001,两名学生在第二学期选修ITB001,而两名学生在第一学期选修MKB114。
通过对多列进行分组,您可以提取更具体的见解,并更详细地分析数据。
免责声明: 提供的所有资源部分来自互联网,如果有侵犯您的版权或其他权益,请说明详细缘由并提供版权或权益证明然后发到邮箱:[email protected] 我们会第一时间内为您处理。
Copyright© 2022 湘ICP备2022001581号-3