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 的值能分组 则分为同一组,如果不能,那么就新建一组

        明白了吗?

  • 相关阅读:
    linux命令--cp
    linux命令--mv
    CSS属性值定义语法中的符号说名
    select选项改变时获取选中的option的值
    JS截取字符串:slice(),substring()和substr()
    正则表达式进行密码验证
    利用@media实现IE hack
    javascript版1024游戏源码
    canvas写的一个小时钟demo
    gl.vertexAtteib3f P42 讲数据传给location参数指定的attribute变量
  • 原文地址:https://www.cnblogs.com/mc67/p/5050900.html
Copyright © 2011-2022 走看看