Oracle分析函数三——SUM,AVG,MIN,MAX,COUNT
生活随笔
收集整理的這篇文章主要介紹了
Oracle分析函数三——SUM,AVG,MIN,MAX,COUNT
小編覺得挺不錯的,現在分享給大家,幫大家做個參考.
Oracle 分析函數——SUM,AVG,MIN,MAX,COUNT SUM 功能描述:該函數計算組中表達式的累積和。 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);
本文轉自baoqiangwang51CTO博客,原文鏈接:http://blog.51cto.com/baoqiangwang/312690,如需轉載請自行聯系原作者
本文轉自baoqiangwang51CTO博客,原文鏈接:http://blog.51cto.com/baoqiangwang/312690,如需轉載請自行聯系原作者
總結
以上是生活随笔為你收集整理的Oracle分析函数三——SUM,AVG,MIN,MAX,COUNT的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: LINUX系统管理员技术(Admin)-
- 下一篇: iptables中关于limit和lim