老师,关于第四道例题的疑问
问题描述:
老师,我的SQL如下:
SQL:
SELECT e.empno,e.ename,e.sal,t.a,t.dname
FROM t_emp e JOIN (SELECT AVG(e1.sal) a,d1.deptno deptno,d1.dname dname FROM t_emp e1 JOIN t_dept d1 ON e1.deptno=d1.deptno GROUP BY d1.deptno) t
ON e.deptno=t.deptno
WHERE e.sal>=t.a;
查出来的结果也是正确的
我想对查出来的结果进行个分组,根据部门,
SQL:
SELECT e.empno,e.ename,e.sal,t.a,t.dname
FROM t_emp e JOIN (SELECT AVG(e1.sal) a,d1.deptno deptno,d1.dname dname FROM t_emp e1 JOIN t_dept d1 ON e1.deptno=d1.deptno GROUP BY d1.deptno) t
ON e.deptno=t.deptno
GROUP BY t.deptno
WHERE e.sal>=t.a;
这里为什么就报错了呢
18
收起
正在回答
1回答
同学你好,sql语句语法有问题,where子句应该在group by子句的前边。如果是在分组查询后进行条件筛选,应该在group by子句后使用having子句进行筛选。
祝学习愉快~
java工程师2020版
- 参与学习 人
- 提交作业 9393 份
- 解答问题 16556 个
综合就业常年第一,编程排行常年霸榜,无需脱产即可学习,北上广深月薪过万 无论你是未就业的学生还是想转行的在职人员,不需要基础,只要你有梦想,想高薪
了解课程
恭喜解决一个难题,获得1积分~
来为老师/同学的回答评分吧
0 星