1.表的聚合查询(和、平均、最大、最小值)
1.1聚合函数
聚合函数主要有以下几个:
COUNT:计算表中的记录数(行数)
SUM:计算表中数值列中数据的合计值
AVG:计算表中数值列中数据的平均值
MAX:计算表中任意列中数据的最大值
MIN:计算表中任意列中数据的最小值
1.2计算全部数据行数
COUNT(*)计数是包含了空行的
SELECT COUNT(*)
FROM product;
1
2
1.3计算非NULL的数据行数
这里要说明的是COUNT()函数只会计算非空的数据个数。
SELECT COUNT(purchase_price)
FROM product;
1
2
1.4计算合值
计算某列的总和
SELECT SUM(sale_price)
FROM product;
1
2
分别计算多列的总和
SELECT SUM(sale_price),SUM(purchase_price)
FROM product;
1
2
这里有个问题,就是我们purchase_price中含有两个空值,但SUM时,依旧算出了结果,这是因为SUM函数会将NULL排除在外,并没有参与计算。
1.5计算平均值
SELECT AVG(sale_price)
FROM product;
1
2
来计算带有空值列的平均值
SELECT AVG(purchase_price)
FROM product;
1
2
这解释一下,平均值也是会去除NULL后再进行计算总和然和除以去除NULL后的行数。也就是说,在计算平均值时,AVG只会计算非空元素的平均值。
1.6计算最大值和最小值
SELECT MAX(sale_price),MIN(purchase_price)
FROM product;
1
2
MIN和MAX同时也会去除NULL值后进行比较大小
但是MAX和MIN和其他聚合函数不一样的地方就是,MAX和MIN不仅仅可以用于数值类型的数据,还对非数值型的数据进行使用,如时间类型.
SELECT MAX(regist_date),MIN(regist_date)
FROM product;
1
2
1.7使用聚合函数删除重复值
我们想统计非重复数据的个数,在聚合函数里先去重,再统计个数。其他聚合函数也是一样。
SELECT COUNT(DISTINCT product_type)
FROM product;
1
2