1.分组函数
需求20:查询所有商品平均零售价
SELECT AVG(salePrice) FROM product
需求21:查询商品总记录数
SELECT COUNT(id) count FROM product
需求22:查询分类为2的商品总数
SELECT COUNT(id) count FROM product WHERE dir_id=2;
需求23:查询商品的最小零售价,最高零售价,以及所有商品零售价总和
SELECT MIN(salePrice) 最小零售价,MAX(salePrice) 最高零售价,SUM(salePrice)零售价总和
FROM product
2.分组查询
栗子1:查询每个商品的分类编号和每个商品分类各自的平均零售价
SELECT dir_id,AVG(salePrice)
FROM product
GROUP BY dir_id;
栗子2:查询每个商品分类编号和每个商品分类各自的商品总数
SELECT dir_id,COUNT(id) FROM product GROUP BY dir_id;
栗子3:查询每个商品分类编号和每个商品分类中零售价大于100的商品总数
SELECT dir_id,COUNT(id) FROM product WHERE salePrice >100 GROUP BY dir_id;
3.HAVING子句(对分组之后的结果做过滤)
HAVING子句通常和GROUP BY子句一起使用,用来限制搜索条件。HAVING子句与组有关,不与单个值有关,它会作用于GROUP BY创建的组。
HAVING子句是可选的,不能单独使用,只能配合GROUP BY子句使用,作用是对GROUP BY子句设置条件,对统计后的结果进行限制。
栗子4:查询每个商品分类编号和每个商品分类中零售价大于100的商品总数,商品总数大于5的分类
SELECT dir_id,COUNT(id)
FROM product
WHERE salePrice >100
GROUP BY dir_id
HAVING COUNT(id)>5;
栗子5:查询零售价大于100的商品零售价总和大于1500的商品分类编号以及总零售价和
SELECT dir_id,SUM(salePrice) sum
FROM product
WHERE salePrice>100
GROUP BY dir_id
HAVING sum>1500