十年網(wǎng)站開發(fā)經(jīng)驗 + 多家企業(yè)客戶 + 靠譜的建站團隊
量身定制 + 運營維護+專業(yè)推廣+無憂售后,網(wǎng)站問題一站解決
原文鏈接:http://www.datastudy.cc/to/58
Group By分組聚合是我們在使用過程中使用最多的SQL之一(另外一個使用最多的估計就是JOIN了吧),為了讓大家詳細了解Group By的計算執(zhí)行過程,我們下面使用一張圖來詳細講解一下。
我們的數(shù)據(jù)就是左表,有name和score兩列,我們要求每個name下,score的大值,技術(shù)術(shù)語是:根據(jù)每個name進行分組,根據(jù)max函數(shù)進行聚合(我們和別人交流的時候,記得要這樣子說)。
Group by語句先會根據(jù)每個name進行分組,把每個name對應(yīng)的score都放到一個地方,如中間的表格所示。例如,name為b的行,有三個對應(yīng)的score,其他類推,每個數(shù)據(jù)庫都會做好這一步的準備,也就是Group By操作執(zhí)行之后,這個中間的數(shù)據(jù)體就會存在了,它等待著我們調(diào)用聚合函數(shù)去統(tǒng)計它。
然后,我們的聚合函數(shù)要調(diào)用的是:max,也就是從一堆數(shù)據(jù)中,取出大值的函數(shù)。聚合函數(shù)還有其他值,例如和大值max對應(yīng)的最小值min,求和sum等等,所有這些聚合函數(shù),都是針對一個數(shù)組進行處理的,所謂的數(shù)據(jù),就是b里面那三個值。
yes,有了中間那個數(shù)據(jù)體,我們就可以非常簡單地理解所謂的聚合函數(shù)了。OK,聚合函數(shù)執(zhí)行完成后,把返回的值交給分組的字段,組合成一行記錄,數(shù)據(jù)庫等待所有的分組都執(zhí)行完成,把數(shù)據(jù)組合起來,返回給我們。
這個就是整個分組聚合的過程,如果你覺得還是不能理解,那么在本文下面回復(fù)吧。
另外有需要云服務(wù)器可以了解下創(chuàng)新互聯(lián)scvps.cn,海內(nèi)外云服務(wù)器15元起步,三天無理由+7*72小時售后在線,公司持有idc許可證,提供“云服務(wù)器、裸金屬服務(wù)器、高防服務(wù)器、香港服務(wù)器、美國服務(wù)器、虛擬主機、免備案服務(wù)器”等云主機租用服務(wù)以及企業(yè)上云的綜合解決方案,具有“安全穩(wěn)定、簡單易用、服務(wù)可用性高、性價比高”等特點與優(yōu)勢,專為企業(yè)上云打造定制,能夠滿足用戶豐富、多元化的應(yīng)用場景需求。