HAVING 子查询:
HAVING 字句的对分组统计函数进行过滤的字句,也可以在HAVING 字句中只用子查询,这就是HAVING子查询
查询出平均工资高于所有员工平均工资的职位的名称,以及职位的人数,这些高于平均工资的职位的平均工资:
第一步:查询出所有员工的平均工资:
SELECT AVG(sal)
FROM emp;
第二步:按照职位分组,使用子查询
SELECT job,COUNT(*) 人数,AVG(sal)
FROM emp
GROUP BY job
HAVING AVG(sal)>(
SELECT AVG(sal)
FROM emp);
查询出平均工资最高的职位名称和该职位的平均工资:
SELECT job,AVG(sal)
FROM emp
GROUP BY job
HAVING AVG(sal)=(
SELECT MAX(AVG(sal))
FROM emp
GROUP BY job);
查询出工资排名第三的员工信息:
第一步:查询第一名工资
SELECT MAX(sal)
FROM emp;
第二步:第二名工资
SELECT MAX(sal)
FROM emp
WHERE sal<(
SELECT MAX(sal)
FROM emp);
第三步:第三名工资
SELECT *
FROM emp
WHERE sal=(
SELECT MAX(sal)
FROM emp
WHERE sal<(
SELECT MAX(sal)
FROM emp
WHERE sal<(
SELECT MAX(sal)
FROM emp)));