7.1 单行子查询 （子查询结果是一个值）
2020年4月1日
16:50
例1：查询大于3号店平均销售量的店铺
分析：
（1）我们要先查出3号店销售销售量的平均值
SELECT AVG(销售数量) AS 平均销量 FROM `销售表` WHERE 店号 in(3)
（2）查询大于3号店平均销售量的店铺
SELECT 店号,AVG(销售数量) AS 平均销量
FROM `销售表` 
GROUP BY 店号
HAVING AVG(销售数量)>(复制上一段代码);
例2：查询低于平均销量的店铺
分析：
（1）查询全部店铺平均销量
SELECT AVG(销售数量) AS 平均销量 FROM `销售表`
（2）低于平均销量的店铺
SELECT 店号,AVG(销售数量) AS 平均销量
FROM `销售表` 
GROUP BY 店号
HAVING AVG(销售数量)<(复制上一段代码);
例3：查询大于2号店的平均销量，又小于7号店的平均销量，的店铺平均销量
分析：
（1）2店平均销售量
SELECT AVG(销售数量) AS 平均销量 FROM `销售表` WHERE 店号 in(2)
（2）7店平均销售量
SELECT AVG(销售数量) AS 平均销量 FROM `销售表` WHERE 店号 in(7)
（3）大于2店又小于7店平均销售量的店铺
SELECT 店号,AVG(销售数量) AS 平均销量
FROM `销售表` 
GROUP BY 店号
HAVING AVG(销售数量) > (复制2店代码) AND AVG(销售数量) < (复制7店代码)
也可以写成：
SELECT 店号,AVG(销售数量) AS 平均销量
FROM `销售表` 
GROUP BY 店号
HAVING AVG(销售数量) BETWEEN (复制2店代码) AND (复制7店代码);
人力、财务，例如你们查询，谁的工资比XXX人高
什么情况下放在Where后面呀？凡是表里有的字段放到Where后面。
孙兴华总结：
凡是表里没有这个字段的时候（你自造的字段）必需用HAVING，不能使用WHERE
凡是字段名在FROM表中是唯一的，字段名前可以省略表名
凡是单行子查询，子查询必须是一个值，也就是说，子语句Select后面只能有一个字段名