(1)order by語句:(默認升序)
SELECT
column_1,
column_2,
column_3,
...
FROM
table_name
ORDER BY
column_1 [ASC | DESC] [NULLS FIRST | NULLS LAST],
column_1 [ASC | DESC] [NULLS FIRST | NULLS LAST],
要按列排序結果集,可以在ORDER BY子句之後列出該列。
按照列名是一個排序順序,可以是:
- ASC表示按升序排序
- DESC表示按降序排序
默認情況下,無論是否指定ASC,ORDER BY子句都按升序對行進行排序。如果要按降序對行進行排序,請明確使用DESC。
NULLS FIRST在非NULL值之前放置NULL值,NULLS LAST在非NULL值之後放置NULL值。
ORDER BY子句可以按多列對數據進行排序,每列可能有不同的排序順序。
請注意,ORDER BY子句總是SELECT語句中的最後一個子句。
(2)GROUP BY
分組查詢,需要配合聚合函數。根據給定數據列的每個成員對查詢結果進行分組統計,最終得到一個分組彙總表。
常用聚合函數
- count() 計數
- sum() 求和
- avg() 平均數
- max() 最大值
- min() 最小值
語法如下
SELECT column_name, aggregate_function(column_name)
FROM table_name
WHERE column_name operator value
GROUP BY column_name;
例子,以Oracle自帶用戶Scott下的EMP表做練習:
查詢每個部門的人數:
查詢前兩個部門的平均工資:
(3)having
對分組結果進行篩選。
例子:查詢每個部門裏最低工資大於900的人數。