使用 group by 和 order by 可以對(duì)分組數(shù)據(jù)進(jìn)行排序:1. group by 分組數(shù)據(jù);2. order by 對(duì)每組數(shù)據(jù)排序。
SQL 中 GROUP BY 和 ORDER BY 的聯(lián)合使用
在 SQL 中,GROUP BY 和 ORDER BY 都是重要的查詢(xún)子句,它們可以用來(lái)對(duì)數(shù)據(jù)集進(jìn)行分組和排序。當(dāng)您希望對(duì)已分組的數(shù)據(jù)進(jìn)行排序時(shí),可以同時(shí)使用這兩個(gè)子句。
語(yǔ)法
<code class="sql">SELECT column_list FROM table_name GROUP BY group_column ORDER BY order_column;</code>
登錄后復(fù)制
用法
1. 分組
GROUP BY 子句用于將數(shù)據(jù)分組到指定的列上。它將具有相同分組列值的記錄組合在一起,形成組。
2. 排序
ORDER BY 子句用于對(duì)每個(gè)組中的數(shù)據(jù)進(jìn)行排序。它按指定的排序列對(duì)組內(nèi)記錄進(jìn)行排序。
示例
例如,我們有一個(gè)包含學(xué)生成績(jī)的表:
<code class="sql">CREATE TABLE students ( student_id INT, course_name VARCHAR(255), score INT );</code>
登錄后復(fù)制
我們想對(duì)于每個(gè)學(xué)生,按分?jǐn)?shù)降序列出他們的成績(jī):
<code class="sql">SELECT student_id, course_name, score FROM students GROUP BY student_id ORDER BY score DESC;</code>
登錄后復(fù)制
結(jié)果
結(jié)果將按學(xué)生 ID 分組,并為每個(gè)學(xué)生按分?jǐn)?shù)降序排序。
注意事項(xiàng)
ORDER BY 中指定的列必須在 GROUP BY 中指定,或者在聚合函數(shù)中使用。
如果在 GROUP BY 中指定多個(gè)列,ORDER BY 只能按這些列排序。
ORDER BY 可以應(yīng)用于聚合后的列,例如 SUM(score)。






