深入理解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