GROUP BY 兩個字段(或者多個字段的時候)


GROUP BY 兩個字段(貨多個字段的時候)

當group by 一個字段的時候:

   group by 一般和聚合函數一起使用才有意義,比如 count sum avg等,使用group by的兩個要素:
   (1) 出現在select后面的字段 要么是是聚合函數中的,要么就是group by 中的.
   (2) 要篩選結果 可以先使用where 再用group by 或者先用group by 再用having

那么當group by 后面后兩個字段的時候呢?

   我們先看表(先不管表設計時候合理,我們是看group by  分出來的結果)

    

  CREATE TABLE #TEST(
  A VARCHAR(10),
  B VARCHAR(10),
  C INT 
  )
 
  INSERT INTO #TEST VALUES('A','',1)
  INSERT INTO #TEST VALUES('A','',1)
  INSERT INTO #TEST VALUES('A','',1)
  
  INSERT INTO #TEST VALUES('A','',1)
  INSERT INTO #TEST VALUES('B','',1)
  
  INSERT INTO #TEST VALUES('B','',1)
  INSERT INTO #TEST VALUES('B','',1)
  INSERT INTO #TEST VALUES('B','',1)
  
  SELECT A,SUM(C) FROM #TEST
  GROUP BY A
  --結果:
  /*
    A    4
    B    4
  */
  SELECT B,SUM(C) FROM #TEST
  GROUP BY B
  --結果:
  /*
  甲    4
  已    4
  */
  SELECT A,B,SUM(C) FROM #TEST
  GROUP BY A,B
  
  --結果:
  /*
    A     甲     3
    B     甲     1
    A     已     1
    B     已     3
  */
  
  SELECT A,B,SUM(C) FROM #TEST
  GROUP BY B,A
  --結果:
  /*
    A    甲    3
    A    已    1
    B    甲    1
    B    已    3
  */

   發現規律沒,如果沒有,尼瑪,再仔細看看!

   總結:

   GROUP BY A,B

   先根據B字段進行分組,如果B能分,A 也能分 就分成同一組

   這么說吧

    A  B

    1   2

    1   2

    1   3

   你可以將A B 看成一個組合字段,如果 A+B 的值能分組 則分為同一組,如果不能,那么就新建一組

    明白了嗎?


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM