第12章:汇总数据
表名:products
字段:product_id、product_name、product_price、vend_id(供应商)
12.1聚集函数:
我们常常需要汇总数据,而不是把数据检索出来,MySQL提供了专门的函数。
检索例子:
- 确定表中行数
- 获得表中行组的和
- 找出表列
MySQL提供了5个聚集函数。
聚集函数:运行在行组上,计算和返回单个值的函数。
函数 | 说明 |
AVG() | 返回某列的平均值 |
COUNT() | 返回某列的行数 |
MAX() | 返回某列的最大值 |
MIN() | 返回某列的最小值 |
SUM() | 返回某列值之和 |
12.1.1AVG()函数:
查出所有产品价格的平均值
SELECT AVG(product_price) AS avg FROM products
注:AVG()只能用来确定特定数值列的平均值,而且列名必须作为函数参数给出,为了获得多个列的平均值,必须使用多个AVG()函数。
12.1.2COUNT()函数:
COUNT()有两种用法:
- COUNT(*)对表中所有行的数目进行计数。
- COUNT(column)对某一列的行的数目进行计数。
返回所有产品的数目:
SELECT COUNT(*) FROM products
返回供应商所在行的数目:
SELECT COUNT(vend_id) FROM products
注:COUNT(column)如果指定某一列,如果列上有null,则会忽略该行;但是COUNT(*)不会。
MAX():求某一列上的最大值(最大数值或日期,对于文本数据返回最后一行,会自动忽略null值行)。
MIN():求某一列上的最小值(最小值与最小日期,对于文本数据返回第一行,会自动忽略null值行)。
SUM():求某一列上的所有值之和(会自动忽略null值行)。
12.2聚集不同值:
以上5个函数都可以如下使用:
- 对所有的行执行计算,指定ALL参数(默认指定,也就是说不需要指定)
- 对包含不同的值,指定DISTINCT参数
查找所有不同价格的价格平均值
SELECT AVG(DISTINCT product_price) FROM products
注:如果指定列名,则DISTINCT只能用于COUNT()。
12.3组合聚集函数:
示例:
SELECT AVG(product_price) AS avg,COUNT(product_id) AS count, MAX(product_price) AS max,MIN(product_price) AS min, SUM(product_price) AS sum FROM products
相关推荐
专注前端开发 2020-10-21
苏康申 2020-11-13
vitasfly 2020-11-12
oraclemch 2020-11-06
liuyang000 2020-09-25
FellowYourHeart 2020-10-05
赵继业 2020-08-17
whyname 2020-08-16
Seandba 2020-08-16
dbasunny 2020-08-16
拼命工作好好玩 2020-08-15
langyue 2020-08-15
写程序的赵童鞋 2020-08-03
Accpcjg 2020-08-02
tydldd 2020-07-30
好记忆也需烂 2020-07-28
jianghero 2020-07-28