首頁 > 資料庫 > mysql教程 > SQL中GROUP BY x, y如何對資料進行粒度分組?

SQL中GROUP BY x, y如何對資料進行粒度分組?

DDD
發布: 2025-01-22 05:32:09
原創
557 人瀏覽過

How Does GROUP BY x, y Granularly Group Data in SQL?

深入理解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進一步根據SubjectSemester列中值的唯一組合來劃分這些組。

範例

考慮以下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中文網其他相關文章!

本網站聲明
本文內容由網友自願投稿,版權歸原作者所有。本站不承擔相應的法律責任。如發現涉嫌抄襲或侵權的內容,請聯絡admin@php.cn
熱門教學
更多>
最新下載
更多>
網站特效
網站源碼
網站素材
前端模板