1. 程式人生 > >Oracle數據庫(六)—— 分組函數

Oracle數據庫(六)—— 分組函數

ble img color sele 最大值 (六) 部門 png std

(一)組函數

avg:平均函數

max:最大值函數

min:最小值函數

sum:求和函數

stddev:標準差函數

技術分享圖片

count():計數函數

count(expr) 返回expr不為空的記錄總數

技術分享圖片

NVL函數使分組函數無法忽略空值

技術分享圖片

COUNT(DISTINCT expr)返回expr非空且不重復的記錄總數

技術分享圖片

(二) group by

1、對單個列分組

-- 求出employees表中各部門的平均工資

技術分享圖片

2、對多個列分組

-- 求出employees表中各部門、各工種的平均工資

技術分享圖片

  • 在SELECT 列表中所有未包含在組函數中的列都應該包含 在 GROUP BY 子句中
  • 不能在 WHERE 子句中使用組函數
  • 可以在 HAVING 子句中使用組函數

(三)having:過濾分組

使用 HAVING 過濾分組:

  1. 行已經被分組。

  2. 使用了組函數。

  3. 滿足HAVING 子句中條件的分組將被顯示

SELECT column, group_function

FROM table

[WHERE condition]

[GROUP BY group_by_expression]

[HAVING group_condition]

[ORDER BY column];

-- 求出各部門中平均工資大於6000的部門

技術分享圖片

(四)嵌套組函數

-- 求出各部門中平均工資的最大值

技術分享圖片

(五)總結

  1. 使用組函數:avg(),sum(),max(),min(),count()
  2. 在查詢中使用 GROUP BY 子句。
  3. 在查詢中使用 HAVING 子句。

Oracle數據庫(六)—— 分組函數