首頁 >資料庫 >mysql教程 >SQL 的「GROUP BY」函數如何處理多列?

SQL 的「GROUP BY」函數如何處理多列?

Patricia Arquette
Patricia Arquette原創
2025-01-22 05:27:11334瀏覽

How Does SQL's `GROUP BY` Function Work with Multiple Columns?

SQL 的 GROUP BY 子句:處理多列

SQL GROUP BY 子句依照指定的資料列聚合表中的行。 讓我們探討一下它如何在單列和多列中發揮作用。

單列分組 (GROUP BY x)

GROUP BY x 將列「x」中共享相同值的行分組。 所有具有相同“x”值的行都被視為一個群組。

多列分組 (GROUP BY x, y)

對此進行擴展,GROUP BY x, y 根據 列「x」和「y」中的匹配值對行進行分組。 行必須具有相同的值,“x”和“y”才能位於同一組中。

範例:科目註冊

考慮追蹤學生科目註冊的Subject_Selection表:

<code>Table: 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    |
+---------+----------+---------+</code>

只依主題分組

查詢SELECT Subject, COUNT(*) FROM Subject_Selection GROUP BY SubjectSubject分組:

<code>+---------+--------+
| Subject | Count  |
+---------+--------+
| ITB001  | 5      |
| MKB114  | 2      |
+---------+--------+</code>

這顯示了每個科目的總入學人數。

依科目和學期分組

查詢SELECT Subject, Semester, COUNT(*) FROM Subject_Selection GROUP BY Subject, SemesterSubjectSemester分組:

<code>+---------+----------+--------+
| Subject | Semester | Count  |
+---------+----------+--------+
| ITB001  | 1        | 3      |
| ITB001  | 2        | 2      |
| MKB114  | 1        | 2      |
+---------+----------+--------+</code>

這提供了每個科目每學期的註冊人數,提供更精細的視圖。 關鍵區別在於透過在 Semester 子句中包含 GROUP BY 提供了更多的詳細資訊。

以上是SQL 的「GROUP BY」函數如何處理多列?的詳細內容。更多資訊請關注PHP中文網其他相關文章!

陳述:
本文內容由網友自願投稿,版權歸原作者所有。本站不承擔相應的法律責任。如發現涉嫌抄襲或侵權的內容,請聯絡admin@php.cn