max min avg count sum
1,整個結果集是一個組
1) 求部門30 的最高工資,最低工資,平均工資,總人數,有工作的人數,工種數量及工資總和 複製代碼 代碼如下:
select max(ename),max(sal),
min(ename),min(sal),
avg(sal),
count(*) ,count(job),count(distinct(job)) ,
sum(sal) from emp where deptno=30;
2, 帶group by 和 having 的分組
1)按部門分組求最高工資,最低工資,總人數,有工作的人數,工種數量及工資總和 複製代碼 代碼如下:
select deptno, max(ename),max(sal),
min(ename),min(sal),
avg(sal),
count(*) ,count(job),count(distinct(job)) ,
sum(sal) from emp group by deptno;
2)部門30的最高工資,最低工資,總人數,有工作的人數,工種數量及工資總和 複製代碼 代碼如下:
select deptno, max(ename),max(sal),
min(ename),min(sal),
avg(sal),
count(*) ,count(job),count(distinct(job)) ,
sum(sal) from emp group by deptno having deptno=30;
3, stddev 返回一組值的標準差
select deptno,stddev(sal) from emp group by deptno;
variance 返回一組值的方差差
select deptno,variance(sal) from emp group by deptno;
4, 帶有rollup和cube操作符的Group By
rollup 按分組的第一個列進行統計和最後的小計
cube 按分組的所有列的進行統計和最後的小計
select deptno,job ,sum(sal) from emp group by deptno,job;
select deptno,job ,sum(sal) from emp group by rollup(deptno,job);
cube 產生組內所有列的統計和最後的小計
select deptno,job ,sum(sal) from emp group by cube(deptno,job);