一、聚合查询
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),