SQL:聚合与排序

这篇博客详细讲解了SQL中的聚合查询和排序操作。首先介绍了聚合函数,如COUNT、SUM、AVG、MAX、MIN,以及如何结合DISTINCT删除重复值。接着讨论了GROUP BY子句的使用,包括常见错误分析。然后提到了HAVING子句在为聚合结果指定条件时的作用。最后,阐述了ORDER BY子句的应用,包括多列排序、NULL值处理和使用别名排序等细节。
摘要由CSDN通过智能技术生成

一、聚合查询

1.聚合函数

聚合,将多行记录汇总为一行。
聚合函数,用于汇总的函数。

常用聚合函数 含义
COUNT 计算表中的记录数(行数)
SUM 计算表中数值列中数据的合计值
AVG 计算表中数值列中数据的平均值
MAX 求出表中任意列中数据的最大值
MIN 求出表中任意列中数据的最小值

2.计算表中数据的行数

计算全部数据的行数。

-- *表示全部列
-- 其他函数不能将星号*作为参数
SELECT COUNT(*) FROM Product;


计算NULL之外的数据行数,比如,计算purchase_price列中的非空行数。

SELECT COUNT(purchase_price) FROM Product;

3.计算合计值

-- 聚合函数,将NULL当做0处理,相当于忽略了NULL
-- 但是,COUNT(*)例外
SELECT SUM(sale_price),SUM(purchase_price) FROM Product;

4.计算平均值

-- SUM求和会事先排除NULL,这样,AVG求均值时也会排除NULL的个数
SELECT AVG(sale_price),AVG(purchase_price) FROM Product;

5.计算最值

SELECT MAX(sale_price), MIN(purchase_price) FROM Product;

SUM、AVG 函数只能对数值类型的列使用,而MAX、MIN函数可以用于任何数据类型的列。对日期型数据和字符型数据,均值和合计值没有实际意义,因而不能使用SUM和AVG函数。

SELECT MAX(regist_date), MIN(regist_date) FROM Product;

6.使用聚合函数+DISTINCT删除重复值

--计算去除重复数据后的数据行数
SELECT COUNT(DISTINCT product_type) FROM Product;


注意,DISTINCT 必须写在括号中,否则进行的是先计算数据行数再删除重复数据操作,结果是product_type 列的所有行数。

SELECT DISTINCT COUNT(product_type) FROM Product;


所有的聚合函数都可以使用DISTINCT。

-- 去掉价格相同的数据再进行求和
SELECT SUM(sale_price), 
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值