題目:列出員工表每個部門的員工數(員工數必須大于3),和部門名稱。
我的陳述句: select a.deptno,a.count(*) from (select e.*, d.dname from emp e,dept d where e.deptno = d.deptno) a
group by a.deptno
having a.count(*) > 3;
系統提示: 缺失運算式;
標準答案:select d.*, ed.cou from dept d, (select deptno,count(*) cou from emp group by deptno having count(*) > 3) ed
where d.deptno = ed.deptno;
難道我的子查詢陳述句邏輯錯誤么?請不吝賜教!!謝謝
uj5u.com熱心網友回復:
你的子查詢邏輯沒問題,整個SQL陳述句也沒錯,你的答案和標準答案一個是先連接后分組,另一個是先分組后連接,但都存在一個問題,那就是人家是要部門名稱和部門人數,樓主卻給出了部門號和部門人數,你這樣根本都不需要連接;標準答案,卻取出了部門表的所有欄位和部門人數,應該只需部門名稱和部門人數就夠了。
uj5u.com熱心網友回復:
多謝前輩指點,萬分感謝轉載請註明出處,本文鏈接:https://www.uj5u.com/shujuku/18026.html
標籤:基礎和管理
上一篇:求助大佬求助大佬
