10.DQL查詢語句--分組

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
最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請聯(lián)系作者
【社區(qū)內(nèi)容提示】社區(qū)部分內(nèi)容疑似由AI輔助生成,瀏覽時請結(jié)合常識與多方信息審慎甄別。
平臺聲明:文章內(nèi)容(如有圖片或視頻亦包括在內(nèi))由作者上傳并發(fā)布,文章內(nèi)容僅代表作者本人觀點,簡書系信息發(fā)布平臺,僅提供信息存儲服務(wù)。

相關(guān)閱讀更多精彩內(nèi)容

友情鏈接更多精彩內(nèi)容