mysql 的分組命令用于按指定列或表達式分組記錄,并匯總相同組內的值。最常見的分組命令是 group by,它按照指定的列或表達式將記錄劃分為多個組,并對每個組應用聚合函數(shù)來匯總和計算值。mysql 還支持嵌套 group by 和其他分組命令,如 rollup、cube 和 grouping sets,以實現(xiàn)更復雜的分組操作。
MySQL 中的分組命令
MySQL 中的分組命令主要用于將查詢結果中的記錄按照指定的列或表達式進行分組,從而匯總和聚合相同組內的值。最常見的分組命令是 GROUP BY
。
GROUP BY 語法
<code class="sql">SELECT 分組列, <a style="color:#f60; text-decoration:underline;" href="https://www.php.cn/zt/51779.html" target="_blank">聚合函數(shù)</a>(列) FROM 表名 WHERE 條件 GROUP BY 分組列</code>
登錄后復制
其中:
分組列
:一個或多個指定分組依據(jù)的列或表達式。
聚合函數(shù)
:用于對相同組內值進行匯總和計算的函數(shù),如 SUM()、COUNT()、AVG()
等。
列
:要聚合的列或表達式。
用法
GROUP BY
命令將查詢結果中的記錄劃分為多個組,每個組包含具有相同分組列值的所有記錄。然后,它對每個組中的值應用聚合函數(shù),生成匯總后的結果。
例如,以下查詢使用 GROUP BY
將客戶按國家分組,并統(tǒng)計每個國家中的客戶數(shù)量:
<code class="sql">SELECT country, COUNT(*) AS customer_count FROM customers GROUP BY country;</code>
登錄后復制
嵌套 GROUP BY
MySQL 允許使用嵌套 GROUP BY
,以便在多個級別上對數(shù)據(jù)進行分組。例如,以下查詢將客戶按國家和城市分組,并統(tǒng)計每個城市中來自每個國家的客戶數(shù)量:
<code class="sql">SELECT country, city, COUNT(*) AS customer_count FROM customers GROUP BY country, city;</code>
登錄后復制
其他分組命令
除了 GROUP BY
之外,MySQL 還提供其他分組命令,包括:
ROLLUP
:用于創(chuàng)建多級組,并匯總各個級別的值。
CUBE
:用于創(chuàng)建多維組,并匯總所有可能的維度組合。
GROUPING SETS
:允許按多個組集進行分組。