- AVG:平均
- SUM:總和
- COUNT:共有幾筆
- MAX:最大值
- MIN:最小值
- STDEV:標準差
- VAR:變異數
使用上可以加上group by來使用,可以分組
select avg(salary)平均,sum(salary)總和,count(*)筆數,max(salary)最大,min(salary)最小,STDEV(SALARY)標準差,var(salary)變異數,salary←這次錯
from EMPLOYEES
平均 | 總和 | 筆數 | 最大 | 最小 | 標準差 | 變異數 |
8775 | 175500 | 20 | 24000 | 2500 | 5659.633 | 32031447 |
--注意因為大家都是總和,輸出表也是總合,所以不可以有個別欄位在select中,例如salary
--avg計算時會自動忽略NULL值(20筆資料中有一筆是null,用19加總、19去除),若想要計算包含NULL的欄位,可以寫成AVG(ISNULL(欄位名,0)),也就是先把欄位中的NULL值換成0,之後再做平均
--count(*)計算資料表中總共有幾筆(直行往下數),但如果是count(salary)計算的就會是「欄位中非NULL值的資料有幾筆」,注意!
舉例來說,commission_pct的二十筆資料中只有四筆資料有給值,其他都是NULL,而四筆資料的值分別是:0.2、0.3、0.2、0.15
select count(commission_pct)筆數,avg(commission_pct)去掉NULL的平均,avg(ISNULL(commission_pct,0))有NULL的平均
from EMPLOYEES
筆數 | 去掉NULL的平均 | 有NULL的平均 |
4 | 0.2125 | 0.0425 |
分組加總
select DEPARTMENT_ID,sum(salary)各部門薪資總支出,avg(salary)各部門薪資總平均--因為有分部門了,所以加總也會依部門加總
from EMPLOYEES--1.挑出想要的資料表
group by DEPARTMENT_ID--2.先用部門(ID)進行分類
DEPARTMENT_ID | 各部門薪資總支出 | 各部門薪資總平均 |
NULL | 7000 | 7000 |
10 | 4400 | 4400 |
20 | 19000 | 9500 |
50 | 17500 | 3500 |
60 | 19200 | 6400 |
80 | 30100 | 10033 |
90 | 58000 | 19333 |
110 | 20300 | 10150 |
多欄位分群:先依部門分群,同部門再依工作ID分群,計算總額(所以就是依照各工作ID分群)
select DEPARTMENT_ID,job_id,sum(salary)各部門薪資總支出,avg(salary)各部門薪資總平均--3.因為有分部門了跟ID,所以加總也會同ID加總
from EMPLOYEES--1.挑出想要的資料表
group by DEPARTMENT_ID,JOB_ID--2.先用部門(ID)進行分類
order by DEPARTMENT_ID desc,各部門薪資總支出 desc --4.最後進行排序,先一部門ID,同部門再依照薪資總額排序
DEPARTMENT_ID | job_id | 各部門薪資總支出 | 各部門薪資總平均 |
110 | AC_MGR | 12000 | 12000 |
110 | AC_ACCOUNT | 8300 | 8300 |
90 | AD_VP | 34000 | 17000 |
90 | AD_PRES | 24000 | 24000 |
80 | SA_REP | 19600 | 9800 |
80 | SA_MAN | 10500 | 10500 |
60 | IT_PROG | 19200 | 6400 |
50 | ST_CLERK | 11700 | 2925 |
50 | ST_MAN | 5800 | 5800 |
20 | MK_MAN | 13000 | 13000 |
20 | MK_REP | 6000 | 6000 |
10 | AD_ASST | 4400 | 4400 |
NULL | SA_REP | 7000 | 7000 |
select DEPARTMENT_ID,job_id,sum(salary)各部門薪資總支出,avg(salary)各部門薪資總平均--3.因為有分部門了跟ID,所以加總也會同ID加總
from EMPLOYEES--1.挑出想要的資料表
group by DEPARTMENT_ID,JOB_ID--2.先用部門(ID)進行分類
having avg(salary)>10000--4.用關鍵字having挑出'平均總支出中高於10000的
order by DEPARTMENT_ID desc,各部門薪資總支出 desc --5.最後進行排序,先一部門ID,同部門再依照薪資總額排序
DEPARTMENT_ID | job_id | 各部門薪資總支出 | 各部門薪資總平均 |
110 | AC_MGR | 12000 | 12000 |
90 | AD_VP | 34000 | 17000 |
90 | AD_PRES | 24000 | 24000 |
80 | SA_MAN | 10500 | 10500 |
20 | MK_MAN | 13000 | 13000 |
留言列表