国产成人精品18p,天天干成人网,无码专区狠狠躁天天躁,美女脱精光隐私扒开免费观看

sql語(yǔ)句中g(shù)roup by怎么用

發(fā)布時(shí)間:2021-08-08 19:37 來(lái)源:億速云 閱讀:0 作者:小新 欄目: Mysql 歡迎投稿:712375056

小編給大家分享一下sql語(yǔ)句中g(shù)roup by怎么用,相信大部分人都還不怎么了解,因此分享這篇文章給大家參考一下,希望大家閱讀完這篇文章后大有收獲,下面讓我們一起去了解一下吧!

1.概述

group by 就是依據by 后面的規則對數據分組,所謂的分組就是講數據集劃分成若干個(gè)'小組',針對若干個(gè)小組做處理。

2.語(yǔ)法規則

SELECT column_name, aggregate_function(column_name)
FROM table_name
WHERE column_name operator value
GROUP BY column_name

3.舉例說(shuō)明

我們有這樣一個(gè)訂單表:
 

我們希望統計每一個(gè)用戶(hù)訂單的總金額,我們可以借助 group by 來(lái)實(shí)現:

select Customer,sum(OrderPrice) as total_price group by Customer;

出現下面的結果集:
Bush 2000
Carter 1700
Adams 2000
實(shí)際上是先講數據按照Customer分組,然后統計每一組orderPrice的總和,最后以一組作為一行展現出來(lái)。
如果去掉group by 語(yǔ)句就會(huì )出現下面的結果:

它是講所有的price相加得到最后的總和,與我們的預期是不一樣的。

4.注意點(diǎn)

如果出現下面的寫(xiě)法:

select 類(lèi)別, sum(數量) as 數量之和, 摘要from Agroup by 類(lèi)別order by 類(lèi)別 desc

會(huì )報錯,因為select 的字段要么包含在group by 后面作為分組的依據,要么包含在聚合函數中,否則摘要的那一列無(wú)法匹配到一行。
因此可以采用如下的寫(xiě)法:

select 類(lèi)別, sum(數量) AS 數量之和from Agroup by 類(lèi)別order by sum(數量) desc

如果想使用多列分組,可以采用group by all語(yǔ)法:

select Customer,OrderDate,sum(OrderPrice) group by all Customer,OrderDate

5.where 和having的區別

where 是在查詢(xún)分組前,講不符合where 條件的行去掉,即在分組錢(qián)過(guò)濾數據,where 條件中不能包含聚合函數
having 是篩選滿(mǎn)足條件的組,即在分組之后過(guò)濾數據,having語(yǔ)句中常常包含聚合函數,用having過(guò)濾出特定的組。
舉例:

select Customer,sum(OrderPrice) as total_price group by Customer having total_price>1700;

免責聲明:本站發(fā)布的內容(圖片、視頻和文字)以原創(chuàng )、來(lái)自本網(wǎng)站內容采集于網(wǎng)絡(luò )互聯(lián)網(wǎng)轉載等其它媒體和分享為主,內容觀(guān)點(diǎn)不代表本網(wǎng)站立場(chǎng),如侵犯了原作者的版權,請告知一經(jīng)查實(shí),將立刻刪除涉嫌侵權內容,聯(lián)系我們QQ:712375056,同時(shí)歡迎投稿傳遞力量。

最新国产毛2卡3卡4卡| 久久99精品久久久久子伦| 中文字幕一区二区三区乱码| 国产精品久久久久久久久免费| 出租屋嫖妓大龄熟妇露脸在线播放| 性少妇MDMS丰满HDFILM|