Mysql 的数据汇总(九)

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 的数据汇总(九))