GROUP BY 關(guān)鍵字
分組查詢查出來的數(shù)據(jù)都是組信息
組信息除了分組條件,其他的列都應(yīng)該是用聚合函數(shù)算出來的
分組查詢使用GROUP BY 關(guān)鍵字
查詢公司有哪些工種
SELECT job FROM emp GROUP BY job
- 查詢公司每個工種有多少人
SELECT job, COUNT(1) FROM emp GROUP BY job
分組前加條件
- 使用where條件
- 查詢公司工資大于15000的工種及人數(shù)
SELECT job, COUNT(1) FROM emp WHERE sal > 15000 GROUP BY job
分組后加條件
- 使用 having 條件
- 查詢公司工資大于15000,并且人數(shù)大于等于2的工種及人數(shù)
SELECT job, COUNT(1) FROM emp WHERE sal > 15000 GROUP BY job HAVING COUNT(*) >= 2
排序 ORDER BY
語法:ORDER BY 條件(列名、函數(shù))(升降序)
- ASC 升序,可以省略
- DESC 降序,不能排列
從emp表中查詢出員工詳細信息,并按升序排列
SELECT * FROM emp ORDER BY empno;
SELECT * FROM emp;
上面2條sql語句,執(zhí)行結(jié)果一致,是因為默認是按主鍵升序排序
根據(jù)某列數(shù)據(jù)進行排序, 數(shù)字、日期、字符串都能排序
SELECT * FROM emp ORDER BY ename;
SELECT * FROM emp ORDER BY job;
SELECT * FROM emp ORDER BY hiredate;
SELECT * FROM emp ORDER BY sal;
DESC 表示降序排列,不能省略
SELECT * FROM emp ORDER BY hiredate DESC;
根據(jù)多列進行排序,可以單獨給每列指定升降序
從emp表中查詢出員工的詳細信息,并按工資升序排序
如果工資相同,就按部門升序排序,
如果部門相同,就按入職日期降序排序
SELECT *
FROM emp
ORDER BY sal ASC, deptno ASC, hiredate DESC;
關(guān)鍵字使用順序
- 將上述查詢結(jié)果在排序
SELECT job, COUNT(1) FROM emp WHERE sal > 15000 GROUP BY job HAVING COUNT(*) >= 2 ORDER BY COUNT(*) DESC
- 關(guān)鍵字順序為:select --> from --> where --> group by --> having --> order by