Oracle下SQL語句練習筆記(2019/6/11)order by group by having

(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的人數。

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章