『SQL』GROUP BY語(yǔ)句梳理

GROUP BY是SQL中用來(lái)進(jìn)行數(shù)據(jù)分組的語(yǔ)句,這個(gè)語(yǔ)句使用時(shí)稍有不慎就會(huì)報(bào)錯(cuò)。

GROUP BY

  • 作用
    GROUP BY語(yǔ)句是將查詢到的數(shù)據(jù)進(jìn)行分組,分成各個(gè)區(qū)域,再對(duì)每個(gè)區(qū)域的數(shù)據(jù)進(jìn)行處理。

  • 使用
    比如有一個(gè)“student”表保存了本班學(xué)生的個(gè)人信息和選修的課程等數(shù)據(jù)。

SELECT stu_name,course FROM student;

這個(gè)查詢語(yǔ)句會(huì)返回每個(gè)同學(xué)所選的課程,有許多重復(fù)課程。

如果查看每個(gè)課程選擇的人數(shù):

SELECT course,COUNT(*) FROM student GROUP BY course;

這將返回學(xué)生選擇每個(gè)課程的總和,因?yàn)?strong>ORDER BY子句依據(jù)course字段將數(shù)據(jù)按照課程名稱分組,名稱相同課程合并到了一組,再通過(guò)COUNT()*函數(shù)計(jì)算重復(fù)的數(shù)量,得到總和值,也就是學(xué)生數(shù)。

  • 注意
    如果這么寫(xiě):
SELECT stu_name,course FROM student GROUP BY course;

就會(huì)報(bào)錯(cuò)!因?yàn)椴槌?strong>stu_name和course兩列數(shù)據(jù)后,數(shù)據(jù)庫(kù)根據(jù)GROUP BY后的course字段進(jìn)行分組,這樣課程名相同的數(shù)據(jù)分到了一組,最后只會(huì)以一行的數(shù)據(jù)顯示。
那么問(wèn)題來(lái)了,stu_name字段的數(shù)據(jù)呢?這個(gè)字段并沒(méi)有進(jìn)行分組,也就是說(shuō)該字段數(shù)據(jù)沒(méi)有像course字段一樣合并,問(wèn)題就是在這里:數(shù)據(jù)庫(kù)并不能顯示出這樣“一對(duì)多”的數(shù)據(jù),同時(shí)顯示合并后的course字段和未合并的stu_name字段在一行(因?yàn)橐粋€(gè)數(shù)據(jù)格只能放一個(gè)數(shù)據(jù))。

除了聚集語(yǔ)句,SELECT語(yǔ)句中的字段都要同時(shí)放在ORDER BY語(yǔ)句中!

文章內(nèi)容為個(gè)人理解,如有錯(cuò)誤歡迎指出。

郵箱:CodingDjz@126.com

最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請(qǐng)聯(lián)系作者
平臺(tái)聲明:文章內(nèi)容(如有圖片或視頻亦包括在內(nèi))由作者上傳并發(fā)布,文章內(nèi)容僅代表作者本人觀點(diǎn),簡(jiǎn)書(shū)系信息發(fā)布平臺(tái),僅提供信息存儲(chǔ)服務(wù)。

推薦閱讀更多精彩內(nèi)容

  • 1. Java基礎(chǔ)部分 基礎(chǔ)部分的順序:基本語(yǔ)法,類相關(guān)的語(yǔ)法,內(nèi)部類的語(yǔ)法,繼承相關(guān)的語(yǔ)法,異常的語(yǔ)法,線程的語(yǔ)...
    子非魚(yú)_t_閱讀 31,740評(píng)論 18 399
  • 50個(gè)常用的sql語(yǔ)句Student(S#,Sname,Sage,Ssex) 學(xué)生表Course(C#,Cname...
    哈哈海閱讀 1,248評(píng)論 0 7
  • 21年的時(shí)光,是什么。 21個(gè)春夏秋冬…252個(gè)月…7665個(gè)日日夜夜…183960個(gè)小時(shí)…11037...
    顧錦妍閱讀 375評(píng)論 0 0
  • 四大名著,紅樓寫(xiě)情,水滸寫(xiě)義,三國(guó)寫(xiě)爭(zhēng),西游寫(xiě)悟。下面這60句動(dòng)人的話,出自不同的故事、人物和情境。拋開(kāi)這些具體,...
    尋墨雨清揚(yáng)閱讀 217評(píng)論 0 4
  • Determining Whether a Crash Report is Symbolicated(決定是否符號(hào)...
    helinyu閱讀 1,449評(píng)論 0 1