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