[課業] 資料庫

看板Examination作者 (hyling)時間11年前 (2014/04/03 16:21), 編輯推噓4(407)
留言11則, 4人參與, 最新討論串1/1
想請問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 -- ※ 發信站: 批踢踢實業坊(ptt.cc), 來自: 223.142.177.26 ※ 文章網址: http://www.ptt.cc/bbs/Examination/M.1396513264.A.D9E.html

04/03 16:34, , 1F
GROUP BY d#,dname; → GROUP BY d#; ?
04/03 16:34, 1F

04/03 16:39, , 2F
GROUP BY dname改為
04/03 16:39, 2F

04/03 16:39, , 3F
GROUP BY d#,dname
04/03 16:39, 3F

04/03 16:39, , 4F
這樣可以嗎?
04/03 16:39, 4F

04/03 17:11, , 5F
不行因為group by 的條件要有包含在select中
04/03 17:11, 5F

04/03 17:27, , 6F
select dname, shit
04/03 17:27, 6F

04/03 17:28, , 7F
所以是group by跟select的欄位必須一樣,但是select還可以
04/03 17:28, 7F

04/03 17:28, , 8F
加上聚合函數。對嗎?
04/03 17:28, 8F

04/03 17:29, , 9F
from (SELECT d#,dname,count(dno) as "shit"
04/03 17:29, 9F

04/03 17:29, , 10F
FROM Employee, DeptWHERE dno=d# GROUP BY d#)
04/03 17:29, 10F

04/05 00:47, , 11F
原po 這樣改 正確
04/05 00:47, 11F
文章代碼(AID): #1JFHdmsU (Examination)