本节学习聚合函数
聚合函数
输入一列,输出一行
汇总数据,输出到一行里
会跳过NULL值
一、聚合函数类型
计数函数COUNT
COUNT(*)
COUNT(1)
COUNT([列名])
COUNT(DISTINCT [列名])
求和函数SUM([指定列名])
均值函数AVG([指定列名])
最大值函数MAX([列名])
最小值函数MIN([列名])

函数用法:
SELECT 函数(参数)FROM ;
空值处理
SUM(col)在处理空值时会直接跳过,而普通的四则运算会将空值直接记为NULL。所以在用SUM进行两列数值间的运算时,如果有一列存在空值,直接计算会发生错误,需要对该列进行空值处理(IFNULL)
COUNT(col)也不会记录空值
均值函数AVG:
可以过滤出部分行,进行对应的聚合函数计算
一行代码中可以出现多个聚合函数
如果想要同时展示出来net_w为100g和150g时的sale_price怎么办?
需要用到GROUP BY
二、分组数据GROUP BY
按照【聚合键】进行分组,分好组后在各组中使用聚合函数
SELECT中要展示聚合键、也要使用聚合函数;WHERE过滤出【聚合键】中想要的数据,GROUP BY按照聚合键进行分组
SELECT 聚合键【指定列】,聚合函数 FROM… WHERE 过滤出需要的数据 GROUP BY 聚合键【指定列】
用法举例:

练习:
句3可以达到句1+句2的效果



如果想再对聚合的结果进行筛选呢?比如SUM(sale_price)>30 ?
三、分组过滤HAVING
WHERE对聚合键进行过滤(想要的“行”),HAVING对聚合结果进行过滤(想要的“组”)

注意WHERE和HAVING在使用上的区别

感觉理解上没什么问题~注意练习~可以用prod_info表进行练习
