精华内容
下载资源
问答
  • MySQL聚合函数

    千次阅读 2016-09-30 21:49:49
    MySQL聚合函数
    数据准备:
    
    mysql> CREATE TABLE users(
        -> id SMALLINT UNSIGNED PRIMARY KEY AUTO_INCREMENT,
        -> username VARCHAR(20) NOT NULL,
        -> age SMALLINT UNSIGNED DEFAULT 10,
        -> sex BOOLEAN
        -> );
    Query OK, 0 rows affected (0.12 sec)

    mysql> INSERT users VALUES(DEFAULT,'tom',23,1);
    Query OK, 1 row affected (0.06 sec)

    mysql> INSERT users VALUES(DEFAULT,'tomi',23,1);
    Query OK, 1 row affected (0.06 sec)

    mysql> INSERT users VALUES(DEFAULT,'jerry',26,0);
    Query OK, 1 row affected (0.05 sec)

    mysql> INSERT users VALUES(DEFAULT,'jerry',26,NULL);
    Query OK, 1 row affected (0.05 sec)

    mysql> INSERT users VALUES(DEFAULT,'marry',DEFAULT,NULL);
    Query OK, 1 row affected (0.06 sec)

    mysql> INSERT users VALUES(DEFAULT,'marry',DEFAULT,1);
    Query OK, 1 row affected (0.11 sec)

    mysql> INSERT users VALUES(DEFAULT,'tom',34,0);
    Query OK, 1 row affected (0.05 sec)

    mysql> SELECT * FROM users;
    +----+----------+------+------+
    | id | username | age  | sex  |
    +----+----------+------+------+
    |  1 | tom      |   23 |    1 |
    |  2 | tomi     |   23 |    1 |
    |  3 | jerry    |   26 |    0 |
    |  4 | jerry    |   26 | NULL |
    |  5 | marry    |   10 | NULL |
    |  6 | marry    |   10 |    1 |
    |  7 | tom      |   34 |    0 |
    +----+----------+------+------+
    7 rows in set (0.00 sec)

    1、聚集函数
    聚集函数是运行在行组上,计算和返回单个值的函数。
    SQL聚集函数
    函数 说明
    AVG() 返回某列的平均值
    COUNT() 返回某列的行数
    MAX() 返回某列的最大值
    MIN() 返回某列的最小值
    SUM() 返回某个列之和
    (1)、AVG()函数
    可以返回所有列的平均值,也可以返回特定列的平均值。

    mysql> SELECT AVG(age) AS avg_age FROM users; #计算所有记录中age字段的均值。
    +---------+
    | avg_age |
    +---------+
    | 21.7143 |
    +---------+
    1 row in set (0.00 sec)

    mysql> SELECT AVG(age) AS avg_age FROM users WHERE sex=1;#计算所有的sex=1的记录中age字段的均值。
    +---------+
    | avg_age |
    +---------+
    | 18.6667 |
    +---------+
    1 row in set (0.00 sec)

    (2)、COUNT()函数
    COUNT(*)对表中 行的数目进行计数, 不管表列中包含的是空(NULL)还是非空值
    COUNT(column)对特定列中 有值的行进行计算, 忽略NULL值
    mysql> SELECT COUNT(*) FROM users;#对表中行的数目进行计数
    +----------+
    | COUNT(*) |
    +----------+
    |        7 |
    +----------+
    1 row in set (0.00 sec)

    mysql> SELECT COUNT(sex) FROM users;#对sex列中,有值的行进行计算,忽略NULL值。
    +------------+
    | COUNT(sex) |
    +------------+
    |          5 |
    +------------+
    1 row in set (0.00 sec)
    (3)、MAX()函数
    MAX()返回指定列的最大值,要求 指定列名,忽略NULL值
    在MySQL中,MAX()函数可以对非数据列使用,在用于文本数据时,如果数据按相应的列排序,MAX()返回最后一行。
    mysql> SELECT MAX(age) FROM users;
    +----------+
    | MAX(age) |
    +----------+
    |       34 |
    +----------+
    1 row in set (0.00 sec)

    mysql> SELECT MAX(sex) FROM users;
    +----------+
    | MAX(sex) |
    +----------+
    |        1 |
    +----------+
    1 row in set (0.00 sec)

    mysql> SELECT MAX(username) FROM users;
    +---------------+
    | MAX(username) |
    +---------------+
    | tomi          |
    +---------------+
    1 row in set (0.00 sec)

    mysql> SELECT username FROM users ORDER BY username ASC; #可以看到,tomi排在最后。
    +----------+
    | username |
    +----------+
    | jerry    |
    | jerry    |
    | marry    |
    | marry    |
    | tom      |
    | tom      |
    | tomi     |
    +----------+
    7 rows in set (0.00 sec)

    (4)、MIN()函数
    MIN()返回指定列的最小值,要求 指定列名,忽略NULL值
    在MySQL中,MIN()函数可以对非数据列使用,在用于文本数据时,如果数据按相应的列排序,MIN()返回最前面的一行。
    mysql> SELECT MIN(sex) FROM users;
    +----------+
    | MIN(sex) |
    +----------+
    |        0 |
    +----------+
    1 row in set (0.00 sec)

    mysql> SELECT MIN(age) FROM users;
    +----------+
    | MIN(age) |
    +----------+
    |       10 |
    +----------+
    1 row in set (0.00 sec)

    (5)、SUM()函数
    用来返回 指定列的和(总计),忽略NULL值的行。
    mysql> SELECT SUM(age) FROM users;
    +----------+
    | SUM(age) |
    +----------+
    |      152 |
    +----------+
    1 row in set (0.00 sec)

    mysql> SELECT SUM(sex) FROM users;
    +----------+
    | SUM(sex) |
    +----------+
    |        3 |
    +----------+
    1 row in set (0.00 sec)

    mysql> SELECT SUM(age) AS sum_age FROM users WHERE sex=1;#对sex=1的记录,求年龄之和。
    +---------+
    | sum_age |
    +---------+
    |      56 |
    +---------+
    1 row in set (0.00 sec)

    SUM()也可以 合计计算值
    mysql> SELECT * FROM users WHERE sex=0;
    +----+----------+------+------+
    | id | username | age  | sex  |
    +----+----------+------+------+
    |  3 | jerry    |   26 |    0 |
    |  7 | tom      |   34 |    0 |
    +----+----------+------+------+
    2 rows in set (0.00 sec)

    mysql> SELECT SUM( age*id) AS sum_age_id FROM users WHERE sex=0;
    +------------+
    | sum_age_id |
    +------------+
    |        316 |
    +------------+
    1 row in set (0.00 sec)

    2、聚集不同值
    DISTINCT关键字:如果使用DISTINCT关键字,则需要 去掉重复值。(即: 重复的数值只能使用1次
    mysql> SELECT * FROM users WHERE sex=1;
    +----+----------+------+------+
    | id | username | age  | sex  |
    +----+----------+------+------+
    |  1 | tom      |   23 |    1 |
    |  2 | tomi     |   23 |    1 |
    |  6 | marry    |   10 |    1 |
    +----+----------+------+------+
    3 rows in set (0.00 sec)

    mysql> SELECT AVG(DISTINCT age) FROM users WHERE sex=1;#对23,10求均值。
    +-------------------+
    | AVG(DISTINCT age) |
    +-------------------+
    |           16.5000 |
    +-------------------+
    1 row in set (0.03 sec)

    mysql> SELECT AVG(age) FROM users WHERE sex=1;#对23,23,10求均值
    +----------+
    | AVG(age) |
    +----------+
    |  18.6667 |
    +----------+
    1 row in set (0.00 sec)

    3、组合聚集函数
    聚集函数可以 组合使用
    mysql> SELECT COUNT(*) AS num,MIN(age) AS age_min,MAX(age) AS age_max,AVG(age) AS age_avg FROM users;
    +-----+---------+---------+---------+
    | num | age_min | age_max | age_avg |
    +-----+---------+---------+---------+
    |   7 |      10 |      34 | 21.7143 |
    +-----+---------+---------+---------+

    1 row in set (0.00 sec)

    mysql> SELECT COUNT(*) AS num,MIN(age) AS age_min,MAX(age) AS age_max,AVG(age) AS age_avg FROM users WHERE sex=1;
    +-----+---------+---------+---------+
    | num | age_min | age_max | age_avg |
    +-----+---------+---------+---------+
    |   3 |      10 |      23 | 18.6667 |
    +-----+---------+---------+---------+
    1 row in set (0.00 sec)

    mysql> SELECT * FROM users WHERE sex=1;
    +----+----------+------+------+
    | id | username | age  | sex  |
    +----+----------+------+------+
    |  1 | tom      |   23 |    1 |
    |  2 | tomi     |   23 |    1 |
    |  6 | marry    |   10 |    1 |
    +----+----------+------+------+
    3 rows in set (0.00 sec)

    mysql> SELECT COUNT(*) AS num,MIN(age) AS age_min,MAX(age) AS age_max,AVG(DISTINCT age) AS age_avg FROM users WHERE sex=1;
    +-----+---------+---------+---------+
    | num | age_min | age_max | age_avg |
    +-----+---------+---------+---------+
    |   3 |      10 |      23 | 16.5000 |
    +-----+---------+---------+---------+
    1 row in set (0.00 sec)


    原文地址:点击打开链接



    展开全文
  • mysql聚合函数

    2018-09-09 10:25:00
    mysql聚合函数 group by 子句, 分组子句 group by 字段/别名 [排序方式] 分组后会进行排序。升序:ASC,降序:DESC 以下[合计函数]需配合 group by 使用: count 返回不同的非NULL值数目 ...

    mysql聚合函数

    group by 子句, 分组子句
        group by 字段/别名 [排序方式]
        分组后会进行排序。升序:ASC,降序:DESC
        
        以下[合计函数]需配合 group by 使用:
        count 返回不同的非NULL值数目    count(*)、count(字段)
        sum 求和
        max 求最大值
        min 求最小值
        avg 求平均值
        group_concat 返回带有来自一个组的连接的非NULL值的字符串结果。组内字符串连接
    count()
    sum();
    max();
    min();
    avg();
    group_concat()
    
    -- 其他常用函数
    md5();
    default();

     

    posted @ 2018-09-09 10:25 韦邦杠 阅读( ...) 评论( ...) 编辑 收藏
    展开全文
  • MySQL 聚合函数

    千次阅读 2019-05-28 22:56:30
    经常需要汇总好的数据而不用把他们实际检索出来,使用聚合函数即可 AVG() 返回某列的平均值 COUNT() 返回某列的行数 MAX() 返回某列的最大值 MIN() 返回某列的最小值 SUM() 返回某列值之和 下面一一介绍这些函数...

    经常需要汇总好的数据而不用把他们实际检索出来,使用聚合函数即可

    1. AVG() 返回某列的平均值
    2. COUNT() 返回某列的行数
    3. MAX() 返回某列的最大值
    4. MIN() 返回某列的最小值
    5. SUM() 返回某列值之和

    下面一一介绍这些函数

    • AVG()
      通过对表的计算得出平局值
    SELECT AVG(price) AS avg_price FROM products
    
    • COUNT()
      用来确定表中行的数目以及符合特定条件的行
    //获得表中所有的行数
    SELECT COUNT(*) AS num_all FROM products
    
    //用来确定表中 price 列不为Null的行数
    SELECT COUNT(price) AS num_all FROM products
    
    • MAX()
      得到某列的最大值
    SELECT MAX(price) AS max_price FROM products
    
    • MIN()
      得到某列的最小值
    SELECT MIN(price) AS min_price FROM products
    
    • SUM()
      得到某列的和
    SELECT SUM(price) AS sum_price FROM products
    

    可以在SUM函数内指定列与列的运算,比如价格与数量的计算,最终得到总值

    SELECT SUM(price*quantity) AS sum_price FROM products
    

    以上聚合函数都支持跟where条件查询,并且可以组合使用

    展开全文
  • mysql 聚合函数

    2021-05-03 20:21:43
    Mysql 中提供了对字段进行计算的聚合函数 Sum():对一整列数据进行求和 Count():统计个数null不计数 Max():最大值 Min():最小值 Avg():平均值 Round():小数后几位 (……,几位) 求所有数据数 ...

    Mysql 中提供了对字段进行计算的聚合函数
    Sum():对一整列数据进行求和
    Count():统计个数null不计数
    Max():最大值
    Min():最小值
    Avg():平均值
    Round():小数后几位 (……,几位)

    求所有数据数
    count不统计null ,统计的是记录数
    
    SELECT COUNT(comm) FROM emp;     #  查询emp表comm的总数
    
    SELECT COUNT(*) FROM emp;       #  查询emp表行记录的总数
    
    SELECT COUNT(DISTINCT deptno) FROM emp;   #  查询不重复deptno的记录总数
    
    求和
    SELECT SUM(sal) FROM emp;
    
    求最大值
    SELECT MAX(sal) FROM emp;
    
    求最小值
    SELECT MIN(sal) FROM emp;
    
    
    展开全文
  • mySql 聚合函数

    2018-05-08 22:56:59
    分组函数分组函数作用于一组数据,并对一组数据返回1个值。举个例子,对员工表中“工资”字段的最大值。员工表中工资字段的那列的所有行数据就是一组数据。AVG 平均函数即,在一组数据中取平均值。语法:select AVG...
  • 聚合函数不可以直接嵌套使用,比如: max(count(*))但是可以嵌套子查询使用 eg:注:后面那个 as 必须要写select max(total) from ( select count(*) as total from blog group by btype) as aa;补充知识:mysql中...
  • 目的:Mysql 聚合函数嵌套使用 聚合函数不可以直接嵌套使用,比如: max(count(*)) 但是可以嵌套子查询使用 eg: 注:后面那个 as 必须要写 select max(total) from ( select count(*) as total from blog ...
  • MYSQL聚合函数使用

    千次阅读 2020-06-08 23:02:26
    Mysql聚合函数使用什么是聚合函数?Mysql聚合函数1、COUNT()函数2、SUM()函数 什么是聚合函数? 计算数据表中的记录行数的总数、计算某个字段列下数据的总和,以及计算表中某个字段下的最大值、最小值或者平均值。 ...
  • Mysql 聚合函数嵌套使用

    千次阅读 2019-04-14 13:00:56
    Mysql 聚合函数嵌套使用 目的:Mysql 聚合函数嵌套使用 聚合函数不可以直接嵌套使用,比如: max(count(*)) 但是可以嵌套子查询使用(先分组取出count值, 再将count值倒序排列,取第一个值就是最大的) eg: 注...
  • Mysql聚合函数简介

    2013-11-19 08:52:05
    和groupby配合使用的Mysql聚合函数是最重要的Mysql函数之一。   除非特殊说明,Mysql聚合函数均忽略 null 值的记录。 除非特殊说明,Mysql聚合函数均在没有匹配记录(记录集为空)的情况下均返回 null 值。 ...
  • 记录MySQL聚合函数结果丢失问题 1.问题描述:如下多表联查,pi表为结果集主体,pps表使用min()和max()函数返回sale_price列最小值和最大值,ppi表中存储主表相关的多条数据pic_url。 此时返回集如下: 丢失ppi...
  • mysql聚合函数总结

    千次阅读 2020-06-23 09:55:33
    1.首先我们需要了解下什么是聚合函数 聚合函数aggregation function又称为组函数。 认情况下 聚合函数会对当前所在表当做一个组进行统计。 2.聚合函数的特点 (1).每个组函数接收一个参数(字段名或者表达式) 统计...

空空如也

空空如也

1 2 3 4 5 ... 20
收藏数 64,445
精华内容 25,778
关键字:

mysql聚合函数

mysql 订阅