深入理解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
表:
<code>+---------+----------+----------+ | Subject | Semester | Attendee | +---------+----------+----------+ | ITB001 | 1 | John | | ITB001 | 1 | Bob | | ITB001 | 1 | Mickey | | ITB001 | 2 | Jenny | | ITB001 | 2 | James | | MKB114 | 1 | John | | MKB114 | 1 | Erica | +---------+----------+----------+</code>
應用GROUP BY Subject
將科目分組並計算出席人數:
select Subject, Count(*) from Subject_Selection group by Subject
輸出:
<code>+---------+-------+ | Subject | Count | +---------+-------+ | ITB001 | 5 | | MKB114 | 2 | +---------+-------+</code>
擴展到GROUP BY Subject, Semester
:
select Subject, Semester, Count(*) from Subject_Selection group by Subject, Semester
輸出:
<code>+---------+----------+-------+ | Subject | Semester | Count | +---------+----------+-------+ | ITB001 | 1 | 3 | | ITB001 | 2 | 2 | | MKB114 | 1 | 2 | +---------+----------+-------+</code>
此結果表明,有三名學生在第一學期選修ITB001,兩名學生在第二學期選修ITB001,而兩名學生在第一學期選修MKB114。
透過將多列分組,您可以提取更具體的見解,並更詳細地分析資料。
以上是SQL中GROUP BY x, y如何對資料進行粒度分組?的詳細內容。更多資訊請關注PHP中文網其他相關文章!