在 mysql 中,可以通過使用 group by 和 order by 子句對結果集進行分組和排序。首先,使用 group by 子句按指定列或表達式分組,然后使用 order by 子句按指定列或表達式對分組后的結果集進行排序。通過使用 group by 和 order by 子句,可以按指定列或表達式對結果集進行分組并排序,例如按某個產品 id 分組并按銷售數量排序。
MySQL 分組排序查詢方法
在 MySQL 中,可以通過使用 GROUP BY 和 ORDER BY 子句對結果集進行分組和排序。
分組
GROUP BY 子句將行按指定的列或表達式分組,并將每個組的結果聚合在一起。語法如下:
SELECT <a style="color:#f60; text-decoration:underline;" href="https://www.php.cn/zt/51779.html" target="_blank">聚合函數</a>(列或表達式) FROM 表名 GROUP BY 列或表達式
登錄后復制
排序
ORDER BY 子句對結果集按指定的列或表達式進行排序。語法如下:
SELECT 列或表達式 FROM 表名 ORDER BY 列或表達式 [ASC|DESC]
登錄后復制
分組排序
要對分組后的結果集進行排序,可以使用以下語法:
SELECT 聚合函數(列或表達式) FROM 表名 GROUP BY 列或表達式 ORDER BY 聚合函數(列或表達式) [ASC|DESC]
登錄后復制
示例:
假設我們有一個名為 sales 的表格,其中包含以下數據:
product_id | product_name | quantity |
---|---|---|
1 | Product A | 10 |
2 | Product B | 15 |
1 | Product A | 15 |
2 | Product B | 20 |
以下查詢將按 product_id 分組并按銷售數量從高到低對其進行排序:
SELECT SUM(quantity) AS total_quantity FROM sales GROUP BY product_id ORDER BY total_quantity DESC;
登錄后復制
輸出:
product_id | total_quantity |
---|---|
2 | 35 |
1 | 25 |