zoukankan      html  css  js  c++  java
  • 聚合函数,分组查询,连接查询综合样例

    实比例如以下:
    update users set classes='1' where id in('u001','u002','u003','u004');
    update users set classes='2' where id in('u005','u006','u007');
    users表的内容例如以下:
    +------+-----------+------------+------+-------+---------+
    | id | firstname | secondname | age | count | classes |
    +------+-----------+------------+------+-------+---------+
    | u001 | 张 | 飞 | 18 | 60 | 1 |
    | u002 | 赵 | 云 | 20 | 58 | 1 |
    | u003 | 关 | 羽 | 22 | 80 | 1 |
    | u004 | 刘 | 备 | 25 | 98 | 1 |
    | u006 | 黄 | 盖 | 18 | NULL | 2 |
    | u005 | 王 | 子云 | 12 | 20 | 2 |
    | u007 | 诸葛 | 亮 | 24 | 100 | 2 |
    +------+-----------+------------+------+-------+---------+
    查询1班和2班的平均成绩:
    select avg(count) from users group by classes;
    //上面这种做法也是错误的。原因是从表中数据能够看出,count列的值有null值,这种话聚合函数。求平均值的时候是不
    会计算null值的。
    select sum(count) from users group by classes;//各组count总和
    select count(*) from users group by classes;//各组人员个数
    select sum(count)/count(*) as avg from users group by classes;//各组count平均值
    查询班级平均成绩不及格的班级具体人员信息
    select sum(count)/count(*) as avg from users group by classes;
    select classes,sum(count)/count(*) as avg from users group by classes;->temp
    (select classes,sum(count)/count(*) as avg from users group by classes)as temp
    //查出班级的平均分数小于60的组 和平均分。
    select classes,sum(count)/count(*) as avg from users group by classes having avg<60;-temp
    //终于输出结果的语句(将原来的表和暂时表做连接查询)
    select * from users,
    (select classes,sum(count)/count(*) as avg from users group by classes having avg<60)as temp
     where users.classes=temp.classes;
    //having 子句的作用。
    1.聚合函数,一般用于分组查询。

    2.分组查询中的select的数据项,仅仅能是聚合函数,和分组的数据项本身。

    比方,上面的group by classes中,在查询中除了聚合函数以外。仅仅可能出现classes数据项。
    出现其他数据项。语法上,不会直接报错,可是没有不论什么意义。

    3.对于having子句,仅仅用于分组,是对分组查询结果进行条件限制的。
    也就是说在这个样例中。having子句中仅仅能出现对classes的限定和聚合函数的值的限定。

  • 相关阅读:
    Linux提供哪些功能
    C++——重载原理分析
    C++——多维数组动态开辟与释放
    C++——异常处理
    C++——流类库和输入/输出
    C++——virtual function
    C++——虚函数表解析
    C++——多态实现原理分析
    Python基础——__name__变量
    DNS服务——智能域名解析、镜像Web站点、直接域名泛域名
  • 原文地址:https://www.cnblogs.com/jhcelue/p/7092559.html
Copyright © 2011-2022 走看看