zoukankan      html  css  js  c++  java
  • 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 的值能分组 则分为同一组,如果不能,那么就新建一组

        明白了吗?

  • 相关阅读:
    微信小程序设置控件权重
    从外部浏览开启app
    对rxandroid的简单理解
    react native TextInput
    使用广播来进行刷新页面
    react native中对props和state的理解
    android中四大组件之间相互通信
    android tab选项卡的使用
    android控件 ToggleButton的应用
    Listview的使用
  • 原文地址:https://www.cnblogs.com/mc67/p/5050900.html
Copyright © 2011-2022 走看看