溫馨提示×

您好,登錄后才能下訂單哦!

密碼登錄×
登錄注冊(cè)×
其他方式登錄
點(diǎn)擊 登錄注冊(cè) 即表示同意《億速云用戶服務(wù)條款》

一張圖讓你詳細(xì)理解Group By的分組聚合過程

發(fā)布時(shí)間:2020-07-24 22:30:40 來源:網(wǎng)絡(luò) 閱讀:1666 作者:DataStudy 欄目:開發(fā)技術(shù)

原文鏈接:http://www.datastudy.cc/to/58


Group By分組聚合是我們?cè)谑褂眠^程中使用最多的SQL之一(另外一個(gè)使用最多的估計(jì)就是JOIN了吧),為了讓大家詳細(xì)了解Group By的計(jì)算執(zhí)行過程,我們下面使用一張圖來詳細(xì)講解一下。

一張圖讓你詳細(xì)理解Group By的分組聚合過程

我們的數(shù)據(jù)就是左表,有name和score兩列,我們要求每個(gè)name下,score的最大值,技術(shù)術(shù)語是:根據(jù)每個(gè)name進(jìn)行分組,根據(jù)max函數(shù)進(jìn)行聚合(我們和別人交流的時(shí)候,記得要這樣子說)。

Group by語句先會(huì)根據(jù)每個(gè)name進(jìn)行分組,把每個(gè)name對(duì)應(yīng)的score都放到一個(gè)地方,如中間的表格所示。例如,name為b的行,有三個(gè)對(duì)應(yīng)的score,其他類推,每個(gè)數(shù)據(jù)庫都會(huì)做好這一步的準(zhǔn)備,也就是Group By操作執(zhí)行之后,這個(gè)中間的數(shù)據(jù)體就會(huì)存在了,它等待著我們調(diào)用聚合函數(shù)去統(tǒng)計(jì)它。

然后,我們的聚合函數(shù)要調(diào)用的是:max,也就是從一堆數(shù)據(jù)中,取出最大值的函數(shù)。聚合函數(shù)還有其他值,例如和最大值max對(duì)應(yīng)的最小值min,求和sum等等,所有這些聚合函數(shù),都是針對(duì)一個(gè)數(shù)組進(jìn)行處理的,所謂的數(shù)據(jù),就是b里面那三個(gè)值。

yes,有了中間那個(gè)數(shù)據(jù)體,我們就可以非常簡(jiǎn)單地理解所謂的聚合函數(shù)了。OK,聚合函數(shù)執(zhí)行完成后,把返回的值交給分組的字段,組合成一行記錄,數(shù)據(jù)庫等待所有的分組都執(zhí)行完成,把數(shù)據(jù)組合起來,返回給我們。

這個(gè)就是整個(gè)分組聚合的過程,如果你覺得還是不能理解,那么在本文下面回復(fù)吧。


向AI問一下細(xì)節(jié)

免責(zé)聲明:本站發(fā)布的內(nèi)容(圖片、視頻和文字)以原創(chuàng)、轉(zhuǎn)載和分享為主,文章觀點(diǎn)不代表本網(wǎng)站立場(chǎng),如果涉及侵權(quán)請(qǐng)聯(lián)系站長郵箱:is@yisu.com進(jìn)行舉報(bào),并提供相關(guān)證據(jù),一經(jīng)查實(shí),將立刻刪除涉嫌侵權(quán)內(nèi)容。

AI