所以问题是“有多少员工在孟买工作?”,我一般会把我的代码编写如下
select loc, count(*) from dept where loc = 'Mumbai' GROUP BY loc;
但是这里是子查询,我如何修复代码?
答案 0 :(得分:1)
如果你的课程还没有覆盖连接,那么这是非常基本的方式:
SELECT COUNT(*)
FROM emp
WHERE deptno = (
SELECT deptno
FROM dept
WHERE loc = 'Mumbai'
);
如果您的课程已覆盖联接,请考虑联接的内容:
SELECT emp.*, dept.*
FROM emp
JOIN dept ON emp.deptno = dept.deptno
ORDER BY emp.eno;
运行该查询并查看结果。您将拥有五个员工行,每行将包含员工的部门信息。
您可以依靠连接的表格。这就像对上面的查询结果运行计数:
SELECT COUNT(*)
FROM emp
JOIN dept ON emp.deptno = dept.deptno
WHERE dept.loc = 'Mumbai';
答案 1 :(得分:0)
通过deptno加入两个表并添加dept.loc ='Mumbai'
答案 2 :(得分:0)
尝试以下方法:
select count(*) from dept where loc =(select loc from dept where loc ='mumbai')
答案 3 :(得分:0)
在deptno
上执行联接,按您想要的位置过滤并总结记录数:
select sum(1) from dept, emp where dept.deptno = emp.deptno and dept.loc = 'mumbai';
答案 4 :(得分:0)
在e.deptno = d.deptno上从emp123 e内部联接部门选择计数(*),其中loc =(从dept中选择loc,其中loc =' mumbai')