您好,登錄后才能下訂單哦!
原文鏈接:http://www.datastudy.cc/to/58
Group By分組聚合是我們在使用過程中使用最多的SQL之一(另外一個使用最多的估計就是JOIN了吧),為了讓大家詳細了解Group By的計算執行過程,我們下面使用一張圖來詳細講解一下。
我們的數據就是左表,有name和score兩列,我們要求每個name下,score的最大值,技術術語是:根據每個name進行分組,根據max函數進行聚合(我們和別人交流的時候,記得要這樣子說)。
Group by語句先會根據每個name進行分組,把每個name對應的score都放到一個地方,如中間的表格所示。例如,name為b的行,有三個對應的score,其他類推,每個數據庫都會做好這一步的準備,也就是Group By操作執行之后,這個中間的數據體就會存在了,它等待著我們調用聚合函數去統計它。
然后,我們的聚合函數要調用的是:max,也就是從一堆數據中,取出最大值的函數。聚合函數還有其他值,例如和最大值max對應的最小值min,求和sum等等,所有這些聚合函數,都是針對一個數組進行處理的,所謂的數據,就是b里面那三個值。
yes,有了中間那個數據體,我們就可以非常簡單地理解所謂的聚合函數了。OK,聚合函數執行完成后,把返回的值交給分組的字段,組合成一行記錄,數據庫等待所有的分組都執行完成,把數據組合起來,返回給我們。
這個就是整個分組聚合的過程,如果你覺得還是不能理解,那么在本文下面回復吧。
免責聲明:本站發布的內容(圖片、視頻和文字)以原創、轉載和分享為主,文章觀點不代表本網站立場,如果涉及侵權請聯系站長郵箱:is@yisu.com進行舉報,并提供相關證據,一經查實,將立刻刪除涉嫌侵權內容。