小編給大家分享一下sql語句中g(shù)roup by怎么用,相信大部分人都還不怎么了解,因此分享這篇文章給大家參考一下,希望大家閱讀完這篇文章后大有收獲,下面讓我們一起去了解一下吧!
創(chuàng)新互聯(lián)主營安康網(wǎng)站建設(shè)的網(wǎng)絡(luò)公司,主營網(wǎng)站建設(shè)方案,重慶App定制開發(fā),安康h5微信平臺小程序開發(fā)搭建,安康網(wǎng)站營銷推廣歡迎安康等地區(qū)企業(yè)咨詢1.概述
group by 就是依據(jù)by 后面的規(guī)則對數(shù)據(jù)分組,所謂的分組就是講數(shù)據(jù)集劃分成若干個(gè)'小組',針對若干個(gè)小組做處理。
2.語法規(guī)則
SELECT column_name, aggregate_function(column_name) FROM table_name WHERE column_name operator value GROUP BY column_name
3.舉例說明
我們有這樣一個(gè)訂單表:
我們希望統(tǒng)計(jì)每一個(gè)用戶訂單的總金額,我們可以借助 group by 來實(shí)現(xiàn):
select Customer,sum(OrderPrice) as total_price group by Customer;
出現(xiàn)下面的結(jié)果集:
Bush 2000
Carter 1700
Adams 2000
實(shí)際上是先講數(shù)據(jù)按照Customer分組,然后統(tǒng)計(jì)每一組orderPrice的總和,最后以一組作為一行展現(xiàn)出來。
如果去掉group by 語句就會出現(xiàn)下面的結(jié)果:
它是講所有的price相加得到最后的總和,與我們的預(yù)期是不一樣的。
4.注意點(diǎn)
如果出現(xiàn)下面的寫法:
select 類別, sum(數(shù)量) as 數(shù)量之和, 摘要from Agroup by 類別order by 類別 desc
會報(bào)錯(cuò),因?yàn)閟elect 的字段要么包含在group by 后面作為分組的依據(jù),要么包含在聚合函數(shù)中,否則摘要的那一列無法匹配到一行。
因此可以采用如下的寫法:
select 類別, sum(數(shù)量) AS 數(shù)量之和from Agroup by 類別order by sum(數(shù)量) desc
如果想使用多列分組,可以采用group by all語法:
select Customer,OrderDate,sum(OrderPrice) group by all Customer,OrderDate
5.where 和having的區(qū)別
where 是在查詢分組前,講不符合where 條件的行去掉,即在分組錢過濾數(shù)據(jù),where 條件中不能包含聚合函數(shù)
having 是篩選滿足條件的組,即在分組之后過濾數(shù)據(jù),having語句中常常包含聚合函數(shù),用having過濾出特定的組。
舉例:
select Customer,sum(OrderPrice) as total_price group by Customer having total_price>1700;
以上是“sql語句中g(shù)roup by怎么用”這篇文章的所有內(nèi)容,感謝各位的閱讀!相信大家都有了一定的了解,希望分享的內(nèi)容對大家有所幫助,如果還想學(xué)習(xí)更多知識,歡迎關(guān)注創(chuàng)新互聯(lián)成都網(wǎng)站設(shè)計(jì)公司行業(yè)資訊頻道!
另外有需要云服務(wù)器可以了解下創(chuàng)新互聯(lián)scvps.cn,海內(nèi)外云服務(wù)器15元起步,三天無理由+7*72小時(shí)售后在線,公司持有idc許可證,提供“云服務(wù)器、裸金屬服務(wù)器、高防服務(wù)器、香港服務(wù)器、美國服務(wù)器、虛擬主機(jī)、免備案服務(wù)器”等云主機(jī)租用服務(wù)以及企業(yè)上云的綜合解決方案,具有“安全穩(wěn)定、簡單易用、服務(wù)可用性高、性價(jià)比高”等特點(diǎn)與優(yōu)勢,專為企業(yè)上云打造定制,能夠滿足用戶豐富、多元化的應(yīng)用場景需求。