SELECT DEPTNO,COUNT(DEPTNO)
FROM EMP --分组统计
GROUP BY DEPTNO;
SELECT COUNT(DEPTNO) --如果在一个查询之中不存在GROUP BY字句,那么在SELECT中只允许出现统计函数,其他
FROM EMP; 的任何字段都不允许出现
SELECT JOB,MIN(SAL),MAX(SAL)
FROM EMP --在统计查询之中(存在了GROUP BY字句),SELECT字句之中只允许出现分组字段和统计函数,
GROUP BY JOB; --其他的任何字段都不允许出现
SELECT DEPTNO,MAX(AVG(SAL))
FROM EMP --错误,所有统计函数允许嵌套使用,但一旦使用了嵌套之后,SELECT字句中不允许出现任何字段,包括分组字段
GROUP BY DEPTNO;
SELECT MAX(AVG(SAL))
FROM EMP --正确代码
GROUP BY DEPTNO;
SELECTD.DEPTNO,D.DNAME,D.LOC,COUNT(E.EMPNO) COUNT,
ROUND(AVG(E.SAL),2) AVG,SUM(E.SAL) SUM,MAX(E.SAL) MAX,MIN(E.SAL) MIN
FROM EMP E,DEPT D
WHERE E.DEPTNO(+)=D.DEPTNO --多字段分组统计
GROUP BY D.DEPTNO,D.DNAME,D.LOC
ORDER BY D.DEPTNO;
SELECT JOB, ROUND(AVG(SAL),2),COUNT(EMPNO)
FROM EMP
HAVING AVG(SAL)>2000 --HAVING必须和GROUPBY同时使用,前后顺序无所谓
GROUP BY JOB;
WITH E AS(
SELECT * FROM EMP) --用WITH创建临时表
SELECT * FROM E;