SQL必知会(二)-SQL查询篇(8)-汇总数据

第9课、汇总数据

(1)聚集函数

对某列的多行数值进行汇总,比如求某列中所有行的值之间得出的平均值,总和,最大小值等。

表9-1 SQL 聚集函数

函数说明
AVG()返回某列的平均值
COUNT()返回某列的行数
MAX()返回某列的最大值
MIN()返回某列的最小值
SUM返回某列值之
1)AVG() 函数
AVG 函数只能用来确定特定数值列的平均值。

需求:计算 Products 表中所有产品的平均价格。

SELECT AVG(prod_price) AS avg_price
FROM Products;

输出结果:

avg_price
---------
6.823333

需求:计算 供应商为 DLL01的所有产品的平均价格。

SELECT AVG(prod_price) AS avg_price
FROM Products
WHERE vend_id = 'DLL01';

输出结果:

avg_price
---------
3.865000

2)COUNT() 函数
对表中行的数目进行计数,列中包括非空值和空值。

需求:计算 Customers 表中顾客的总数。

SELECT COUNT(*) AS num_cust
FROM Customers;

输出结果:

num_cust
--------
5

需求:计算只对具有电子邮件地址的客户总数。

SELECT COUNT(cust_email) AS num_cust
FROM Customers;

输出结果:

num_cust
--------
3

--若该 cust_email 列存在 NULL 值,则不计数
3)MAX() 函数
MAX 函数返回指定列的最大值,忽略掉列值为 NULL 的行。

需求:计算 Products 表中最贵物品的价格。

SELECT MAX(prod_price) AS max_price
FROM Products;

输出结果:

max_price
---------
11.99

MIN()、SUM 跟 MAX 用法差不多,就不再做这个笔记了。

(2)聚集不同值

以上5个聚集函数(即表9-1 SQL 聚集函数)都可使用:

  • 对所有执行计算的出来的值,指定 ALL 参数(ALL 是默认的,也可不用设置该参数)
  • 只包含不同的值,指定 DISTINCT 参数。
4)DISTINCT 不能用于 COUNT(通配符)

需求:由于产品中存在相同的价格值,会导致不能准确得出平均价格值。因此需要排除物品相同的价格,而只使用一个相同的值作为代表,来计算所有物品的平均价格。

-- 过滤掉 prod_price 列的重复值,只取一个作为代表值。
SELECT AVG(DISTINCT prod_price) AS avg_price
FROM Products
WHERE vend_id = 'DLL01';

输出结果:

avg_price
---------
4.240000

(3)组合聚集函数

组合多个聚集函数一起执行。

需求:分别计算出所有产品中的物品总数、最低价格、最高价格以及平均价格。

SELECT COUNT(*) AS num_items,
		MIN(prod_price) AS price_min,
		MAX(prod_price) AS price_max,
		AVG(prod_price) AS price_avg
FROM Products;

输出结果:

num_items | price_min | price_max | price_avg
---------------------------------------------
9         | 3.49      | 11.99     | 6.823333
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值