聚合查询:
对表中内容进行汇总函数
01记录函数–count
所谓记录函数就是将表中的内容通过记录函数count将其转化为数值输出。
格式:
count(参数)
注意:这里的转化为数值并不是指累加,平均值等算数行为的操作。而是单纯的记录。
在count中参数可以为*这是和其他函数的一个主要区别
例一记录PRODUCT表中所有的函数
SELECT COUNT(*)
FROM PRODUCT
--这里的参数称为返回值
执行
```
执行
例二计算purchase_price以及sale_price行数
SELECT COUNT(purchase_price)AS purchase,
COUNT(sale_price) AS sale
FROM PRODUCT
执行
在purchase中存在null,在计数时可以看成等价为0,不参与计数
说白了,count(*)会计录所有的行数包括null。
count(参数)只会记录非0行的行数
02计算合计值–sum
格式:
sum(参数)
计算合计值说白了就是计算累加之后的结果,输出的是累加过后的和。
例三计算sale_price和purchase_price的合计值
SELECT SUM(purchase_price)AS purchase,
SUM(sale_price) AS sale
FROM PRODUCT
事实上purchase中包含null
也就是说null可以被计算出
想想看之前我们学过“四则运算遇到null结果必为null”
好像矛盾!
所有的聚合函数在执行时都会把null排除在外(除count(*))外
也可以理解为在聚合函数中null都被当做0对待
03计算平均值–avg
格式:
avg(参数)
例四计算sale_price和purchase_price平均值
SELECT AVG(purchase_price)AS purchase,
AVG(sale_price) AS sale
FROM PRODUCT
执行
同样的在avg计算时可以将null看作0
04计算最值–max,min
格式
max/min(参数)
区别于其他聚合函数,只要能进行排序的函数类型都可以使用max与min,比如字符串类型数据和日期类型数据
例五从purchase_price中选择最小值,从sale_price中选择最大值
SELECT MIN(product_type)AS type,
MAX(sale_price) AS sale
FROM PRODUCT
执行
05去除重复数据–DISTINCT
所有聚合函数都可以使用DISTINCT去除重复值
一般使用在参数前使用DISTINCT也就是聚合函数的括号内
这是因为如果在括号外会先进行聚合函数,再删除重复数据
例六统计sale_price和purchase_price行数要求没有重复内容
SELECT COUNT(DISTINCT product_type)AS type,
COUNT(DISTINCT sale_price) AS sale
FROM PRODUCT
执行
distinct会自动去除重复的行,并且把null排除在外