分組group by 、group by having、where group by與 group by order by

現(xiàn)有表 score

name kecheng fenshu
張三 語(yǔ)文 81
張三 數(shù)學(xué) 75
李四 語(yǔ)文 76
李四 數(shù)學(xué) 90
王五 語(yǔ)文 81
王五 數(shù)學(xué) 100
王五 英語(yǔ) 90


group by 的使用
在使用group by 時(shí),有一個(gè)規(guī)則需要遵守,即出現(xiàn)在select列表中的字段,如果沒(méi)有在聚合函數(shù)中,那么必須出現(xiàn)在group by 子句中。

(select中的字段不可以單獨(dú)出現(xiàn),必須出現(xiàn)在group語(yǔ)句中或者在組函數(shù)中。)
select a.name,a.fengshu from score a group by a.name 這是錯(cuò)誤的

select a.name,min(a.fengshu) from score a group by a.name 這是可以的
圖片表內(nèi)容 名字 和文字內(nèi)容不同,看一眼就好


image.png
image.png

以名字為主查詢,
group by having的使用
having的篩選是在分組以后,并且針對(duì)分組中的每一條數(shù)據(jù),只要有一條不符合要求,這一組都不會(huì)被篩選出來(lái)

篩選出每一門課程分?jǐn)?shù)都大于80的學(xué)生姓名
select a.name from score a group by a.name having min(a.fengshu)>80


image.png

最低分?jǐn)?shù)大于80 表里最低的 80 加了個(gè)=

where group by
where 的篩選是在分組之前,所以在where 里面可以出現(xiàn)任意字段
select a.namefrom score a
where a.fenshu>80
group by a.name


image.png

group by ordey by
select a.fenshu from score a group by a.fenshu order by a.fenshu

order by 排序
(1)order by price //默認(rèn)升序排列
(2)order by price desc //降序排列
(3)order by price asc //升序排列,與默認(rèn)一樣
(4)order by rand() //隨機(jī)排列,效率不高

image.png

ps:到底啥時(shí)候用group by ?
看select后的字段 能不能成為一個(gè)唯一標(biāo)識(shí),如果不能,則使用group by 可以分組


作者:枯木生花
來(lái)源:CSDN
原文:https://blog.csdn.net/qq_28007533/article/details/72859474?utm_source=copy

where和having的區(qū)別:
作用的對(duì)象不同。
WHERE 子句作用于表和視圖,HAVING 子句作用于組。
WHERE 在分組和聚集計(jì)算之前選取輸入行(因此,它控制哪些行進(jìn)入聚集計(jì)算), 而 HAVING 在分組和聚集之后選取分組的行。因此,WHERE 子句不能包含聚集函數(shù); 因?yàn)樵噲D用聚集函數(shù)判斷那些行輸入給聚集運(yùn)算是沒(méi)有意義的。 相反,HAVING 子句總是包含聚集函數(shù)。(嚴(yán)格說(shuō)來(lái),你可以寫不使用聚集的 HAVING 子句, 但這樣做只是白費(fèi)勁。同樣的條件可以更有效地用于 WHERE 階段。)
在上面的例子中,我們可以在 WHERE 里應(yīng)用數(shù)量字段來(lái)限制,因?yàn)樗恍枰奂?這樣比在 HAVING 里增加限制更加高效,因?yàn)槲覀儽苊饬藶槟切┪赐ㄟ^(guò) WHERE 檢查的行進(jìn)行分組和聚集計(jì)算。
綜上所述:
having一般跟在group by之后,執(zhí)行記錄組選擇的一部分來(lái)工作的。where則是執(zhí)行所有數(shù)據(jù)來(lái)工作的。
再者h(yuǎn)aving可以用聚合函數(shù),如having sum(fenshu)>1000


image.png

查詢學(xué)生的 平均分,并且此學(xué)生有兩門以上都小于80,

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

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

  • MYSQL 基礎(chǔ)知識(shí) 1 MySQL數(shù)據(jù)庫(kù)概要 2 簡(jiǎn)單MySQL環(huán)境 3 數(shù)據(jù)的存儲(chǔ)和獲取 4 MySQL基本操...
    Kingtester閱讀 8,056評(píng)論 5 115
  • 觀其大綱 page 01 基礎(chǔ)知識(shí) 1 MySQL數(shù)據(jù)庫(kù)概要 2 簡(jiǎn)單MySQL環(huán)境 3 數(shù)據(jù)的存儲(chǔ)和獲取 4 M...
    周少言閱讀 3,249評(píng)論 0 33
  • 50個(gè)常用的sql語(yǔ)句Student(S#,Sname,Sage,Ssex) 學(xué)生表Course(C#,Cname...
    哈哈海閱讀 1,327評(píng)論 0 7
  • 平時(shí)節(jié)日里,超市和朋友圈中的酒商開(kāi)始推出各種適合送禮的優(yōu)惠活動(dòng),朋友圈中也開(kāi)始各種曬送貨、曬禮盒。 買紅酒的朋友最...
    乖乖愛(ài)閑逛閱讀 940評(píng)論 0 3
  • 人之一生,如負(fù)重遠(yuǎn)行,不可急于求成;以受約束為常事,則不會(huì)心生不滿;常思貧困,方無(wú)貪婪之念;忍耐乃長(zhǎng)久無(wú)事之基石;...
    般若無(wú)相閱讀 223評(píng)論 0 0

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