美文网首页
Mysql 的数据汇总(九)

Mysql 的数据汇总(九)

作者: 改昵称已被占用 | 来源:发表于2020-04-16 22:54 被阅读0次
    timg.jpeg

    本节将简单介绍 sql 的聚集函数以及如何利用它们汇总表的数据

    聚集函数

    运行在行组上,计算和返回单个值的函数

    sql 聚集函数

    函数 说明
    AVG() 返回某列的平均值
    COUNT() 返回某列的行数
    MAX() 返回某列的最大数
    MIN() 返回某列的最小数
    SUM() 返回某列值的和

    AVG() 函数

    AVG()可用来返回所有列的平均值,也可以用来返回特定列或行的平均值

    select avg(score) as score_avg
    from sc;
    

    此查询语句返回了 score_avg,包含了 sc 表中所有 score 字段的平均值,输出为:

    +-----------+
    | score_avg |
    +-----------+
    |  70.77778 |
    +-----------+
    

    AVG() 也可用来确定特定行或列的平均值,如:

    select sid, avg(score) as score_avg
    from sc
    where sid = 3;
    

    此查询语句返回了 sid = 3 的所有行的平均值,输出为:

    +------+-----------+
    | sid  | score_avg |
    +------+-----------+
    | 03   |  80.00000 |
    +------+-----------+
    

    AVG() 只能用来确定特定数值列的平均值,而且列名必须作为函数参数给出。为了获得多个列的平均值,必须使用多个 AVG() 函数
    AVG() 函数忽略列值为 NULL 的行

    COUNT() 函数

    可利用 COUNT() 确定表中行的数目或符合特定条件的行的数目

    使用 COUNT(*) 对表中行的数目进行计数,不管表列中包含的是空值( NULL)还是非空值:

    select count(sid) as 'stu_count'
    from student;
    

    此查询语句返回了学生的总人数,输出为:

    +-----------+
    | stu_count |
    +-----------+
    |        12 |
    +-----------+
    

    使用 COUNT(column) 对特定列中具有值的行进行计数,忽略 NULL 值:

    select count(pay_time) as 'pay_count'
    from order_info_utf;
    

    此查询语句返回了 pay_time 字段值不为 null 的行数,输出为:

    +----------------+
    |    pay_count   |
    +----------------+
    |         461805 |
    +----------------+
    

    MAX() 函数

    MAX() 要求指定列名

    select max(score) as score_max
    from sc;
    

    此查询语句返回了 sc 表中 score 字段最大的值,输出为:

    +-----------+
    | score_max |
    +-----------+
    |      99.0 |
    +-----------+
    

    MAX() 函数忽略列值为 NULL 的行

    MIN() 函数

    MIN() 要求指定列名

    select min(score) as score_min
    from sc;
    

    此查询语句返回了 sc 表中 score 字段最小的值,输出为:

    +------------+
    | min(score) |
    +------------+
    |       31.0 |
    +------------+
    

    MIN() 函数忽略列值为 NULL 的行

    SUM() 函数

    select sum(score) score_sum
    from sc
    where sid = 3;
    

    此查询语句返回了 sid = 3 的总分,输出为:

    +------------+
    | sum(score) |
    +------------+
    |      240.0 |
    +------------+
    

    SUM() 也可以用来合计计算值,如:

    select sum(price * num) as total_price
    from goods;
    

    此查询语句返回了 goods 表中所有商品的总价,输出为:

    +-------------+
    | total_price |
    +-------------+
    | 6963697.000 |
    +-------------+
    

    SUM() 函数忽略列值为 NULL 的行

    聚集不同的值

    select avg(distinct score) as score_avg
    from sc;
    

    此查询语句查询了所有不同分数的平均分,输出为:

    +-----------+
    | score_avg |
    +-----------+
    |  68.84615 |
    +-----------+
    

    组合聚集函数

    SELECT 语句可根据需要包含多个聚集函数,如:

    select count(score) as score_sount,
           avg(score) as score_avg,
           sum(score) as score_sum,
           max(score) as score_max,
           min(score) as score_min
    from sc;
    

    此查询语句查询了 sc 表中所有的分数人数、平均分、总分、最高分、最低分,输出为:

    +-------------+-----------+-----------+-----------+-----------+
    | score_sount | score_avg | score_sum | score_max | score_min |
    +-------------+-----------+-----------+-----------+-----------+
    |          18 |  70.77778 |    1274.0 |      99.0 |      31.0 |
    +-------------+-----------+-----------+-----------+-----------+
    

    相关文章

      网友评论

          本文标题:Mysql 的数据汇总(九)

          本文链接:https://www.haomeiwen.com/subject/jqjjvhtx.html