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