zoukankan      html  css  js  c++  java
  • group by 两个字段

    group by 的简单说明:  group by 一般和聚合函数一起使用才有意义,比如 count sum avg等

    使用group by的两个要素:
       (1) 出现在select后面的字段 要么是是聚合函数中的,要么就是group by 中的.
       (2) 要筛选结果 可以先使用where 再用group by 或者先用group by 再用having

    下面看下 group by多个条件的分析:

    ---------- 测试数据初始化    begin --------------------

    在SQL查询器输入以下语句

    create table test1
    (
    a varchar2(20),
    b varchar2(20),
    c varchar2(20)
    );
    insert into test1 values(1,'a','甲');
    insert into test1 values(1,'a','甲');
    insert into test1 values(1,'a','甲');
    insert into test1 values(1,'a','甲');
    insert into test1 values(1,'a','乙');
    insert into test1 values(1,'b','乙');
    insert into test1 values(1,'b','乙');
    insert into test1 values(1,'b','乙');

    ---------- 测试数据初始化    end--------------------

    第一次查询

    select * from test1; 结果如下图:

    结果中       按照b列来分:则是 5个a 3个b.    按照c列来分:则是 4个甲 4个乙.

    第二次查询 按照 b列来分组 代码如下

    select count(a),b from test1 group by b;

    第三次 按照 c列来分组 代码如下
    select count(a),c from test1 group by c;


    第四次 按照 b c两个条件来分组

    select count(a),b,c from test1 group by b,c;

    可以看出 group by 两个条件的工作过程:

    先对第一个条件b列的值 进行分组,分为 第一组:1-5, 第二组6-8,

    然后又对已经存在的两个分组用条件二 c列的值进行分组,发现第一组又可以分为两组 1-4,5

    第五次 按照 c b 顺序分组

    select count(a),b,c from test1 group by c,b;

  • 相关阅读:
    Intellij IDEA调试功能使用总结
    193.数据库备份和恢复
    191.数据安全性控制
    192.数据完整性管理
    190.事务管理与并发控制
    189.存储过程和触发器
    云笔记项目-笔记列表弹出"分享移动删除"子菜单
    使用JavaMail发送邮件-从FTP读取图片并添加到邮件正文发送
    二进制学习
    云笔记项目-网页端debug功能学习
  • 原文地址:https://www.cnblogs.com/javalinux/p/14867119.html
Copyright © 2011-2022 走看看