資料庫 - 考試

Table of Contents

想請問Group by的觀念問題,
Employee(e#,phone,dno) 主鍵:e#
Dept(d#,dname) 主鍵:d#
查詢:列出部門名稱及各部門人數

SELECT dname,count(*)
FROM Employee,Dept
WHERE dno=d#
GROUP BY dname;

我的疑慮是假設部門名稱有可能重複,那麼GROUP BY dname是不是查詢結果就有可能不正確?

如果我改寫成:
SELECT dname,count(*)
FROM Employee,Dept
WHERE dno=d#
GROUP BY d#,dname;
這樣可以嗎? 謝謝大家!!


--
Sent from my Android

--

All Comments

Blanche avatarBlanche2014-04-06
GROUP BY d#,dname; → GROUP BY d#; ?
Joseph avatarJoseph2014-04-08
GROUP BY dname改為
GROUP BY d#,dname
這樣可以嗎?
Catherine avatarCatherine2014-04-11
不行因為group by 的條件要有包含在select中
Wallis avatarWallis2014-04-14
select dname, shit
Skylar DavisLinda avatarSkylar DavisLinda2014-04-16
所以是group by跟select的欄位必須一樣,但是select還可以
加上聚合函數。對嗎?
Erin avatarErin2014-04-21
from (SELECT d#,dname,count(dno) as "shit"
FROM Employee, DeptWHERE dno=d# GROUP BY d#)
Adele avatarAdele2014-04-22
原po 這樣改 正確