Oracle分析函數三——SUM,AVG,MIN,MAX,COUNT

來源:互聯網
上載者:User

原創於2009年08月02日,2009年10月22日遷移至此。


Oracle 分析函數——SUM,AVG,MIN,MAX,COUNT

SUM

功能描述:該Function Compute組中運算式的累積和。

SAMPLE :下例計算同一經理下員工的薪水累積值

 

MIN

功能描述:在一個組中的資料視窗中尋找運算式的最小值。

SAMPLE :下面例子中 dept_min 返回當前行所在部門的最小薪水值

 

MAX

功能描述:在一個組中的資料視窗中尋找運算式的最大值。

SAMPLE :下面例子中 dept_max 返回當前行所在部門的最大薪水值

 

AVG

功能描述:用於計算一個組和資料視窗內運算式的平均值。

SAMPLE :下面的例子中列 c_mavg 計算員工表中每個員工的平均薪水報告

 

SELECT

 department_id,

 first_name||' '||last_name employee_name,

 hire_date, 

 salary,

 MIN(salary) OVER (PARTITION BY department_id order by hire_date) AS dept_min,

 MAX(salary) OVER (PARTITION BY department_id order by hire_date) AS dept_max, 

 AVG(salary) OVER (PARTITION BY department_id order by hire_date) AS dept_avg,   

 SUM(salary) OVER (PARTITION BY department_id order by hire_date) AS dept_sum/*,   

 COUNT(*) OVER (ORDER BY salary) AS count_by_salary, 

 COUNT(*) OVER (ORDER BY salary RANGE BETWEEN 50 PRECEDING AND 150 FOLLOWING) AS count_by_salary_range*/

FROM employees

 

COUNT

功能描述:對一組內發生的事情進行累積計數,如果指定 * 或一些非空常數, count 將對所有行計數,如果指定一個運算式, count 返回運算式非空賦值的計數,當有相同值出現時,這些相等的值都會被納入被計算的值;可以使用 DISTINCT 來記錄去掉一組中完全相同的資料後出現的行數。

SAMPLE :下面例子中計算每個員工在按薪水排序中當前行附近薪水在 [n-50,n+150] 之間的行數, n 表示當前行的薪水

例如, Philtanker 的薪水 2200 ,排在他之前的行中薪水大於等於 2200-50 的有 1 行,排在他之後的行中薪水小於等於 2200 + 150 的行沒有,所以 count 計數值 cnt3 為 2 (包括自己當前行); cnt2 值相當於小於等於當前行的 SALARY 值的所有行數

 

SELECT

 department_id,

 first_name||' '||last_name employee_name,

 salary,

 COUNT(*) OVER (ORDER BY salary) AS count_by_salary, 

 COUNT(*) OVER (ORDER BY salary RANGE BETWEEN 50 PRECEDING AND 150 FOLLOWING) AS count_by_salary_range

FROM employees

WHERE department_id in (10,20,30);

 

 

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.