• 7.1 计算平均值


    问题:计算某个列的平均值,它可以包含表中的所有行,也可以只包含其中的某个子集。例如,计算所有职员的平均工资以及每个部门的平均工资。

    解决方法:当计算所有职员的平均工资时,只需要把AVG函数应用于工资列即可。
    select avg(sal) as avg_sal from emp group by deptno;

    要计算每个部门的平均工资,需使用GROUP BY子句,它按每个部门创建分组:
    select deptno,avg(sal) as avg_sal from emp group by deptno;

    讨论:
    如果以整个表作为一个组或一个窗口计算平均值,则只需对相应列使用AVG函数,而不要使用GROUP BY子句。请注意,AVG函数会忽略NULL值。

    create table t2(sal integer);
    insert into t2 values(10);
    insert into t2 values(20);
    insert into t2 values(null);

    select distinct 30/2 from t2;
    +---------+
    | 30/2    |
    +---------+
    | 15.0000 |
    +---------+

     select avg(coalesce(sal,0)) from t2;
    +----------------------+
    | avg(coalesce(sal,0)) |
    +----------------------+
    |              10.0000 |
    +----------------------+

    COALESCE函数会返回参数列表中的第一个非NULL值。如果把SAL值中的NULL转换为0,平均值就会改变。
    顺便提一下,GROUP BY依据的列不一定要包含在SELECT列表中,例如:
    select avg(sal) from emp group by deptno;
    +--------------------+
    | avg(sal)           |
    +--------------------+
    | 2916.6666666666665 |
    | 1566.6666666666667 |
    +--------------------+

    即使在SELECT子句中不包含DEPTNO,也可以按它分组。

  • 相关阅读:
    Windows netstat
    LOIC Download
    Open CV 环境配置
    C++ strcat_s
    c++ strlen() 函数
    css实现1px 像素线条_解决移动端1px线条的显示方式
    css中line-height的理解_介绍line-height实际应用
    css 分割线样式_css实现文章分割线的多种方法总结
    css获取除第一个之外的子元素
    css实现div多边框_box-shadow模拟多边框、outline描边实现
  • 原文地址:https://www.cnblogs.com/l10n/p/7523230.html
Copyright © 2020-2023  润新知