[考題] 三等一般警察人員考試 資料庫一題

看板 Examination
作者 k222 (小烏龜)
時間 2013-06-30 23:54:50
留言 19則留言 (5推 0噓 14→)

二、假設某學校資料庫如下: Course (CID, NAME, DEPT) // 課程(課程代號,課程名稱,系名) Classroom (RID, LOCATION, TYPE) // 教室(教室編號,教室地點,類別) Use(CID , RID, TIME) // 使用(課程代號,教室編號,使用時間藍色為主鍵 (四)指出並改正下列SQL 語法錯誤以找出每間小型教室的使用次數。(10 分) SELECT R.RID, COUNT (*) AS usecount FROM Classroom R, Use S WHERE R.RID=S.RID GROUP BY R.RID HAVING R.TYPE='small' 我認為的答案是改COUNT(TIME) 因為同一時間可能有兩個課程使用同一間教室? COUNT (*)可能會多算, 我不是很熟資料庫, 請問我的想法是否正確? 請各位大大解惑 感謝~~ -- ◆ From: 114.34.219.104
※ 批踢踢實業坊(ptt.cc)
※ 文章網址: https://www.ptt.cc/bbs/Examination/M.1372607693.A.06F.html

malowda:用常識也知道不可能同時間有兩個課程用同一間教室 07/01 00:18

malowda:這和資料庫熟不熟沒關係好嗎這是常識 07/01 00:19

ARCHERDEVIL:不是很確定 我有點忘記count 會抓哪個table的資料 07/01 00:21

ARCHERDEVIL:但印象中如果用count(*)應該會抓全部 07/01 00:22

ARCHERDEVIL:至於這裡的全部究竟是卡式積還是classroom 的我要想 07/01 00:22

ARCHERDEVIL:正確寫法應該是count(s.time) 07/01 00:23

ARCHERDEVIL:select 那邊也應該是s.cid 而不是r.cid 雖然也可以 07/01 00:24

malowda:如果有某間SMALL的教室沒開放使用就不會被算到 07/01 00:25

malowda:沒辦法找出每間教室使用次數包含0的小型教室 07/01 00:26

carterdunk:HAVING R.TYPE='small' 錯了 07/01 00:26

GLTY:樓上一語道破@@ 沒開放就不會有紀錄也不會被列出,這樣? 07/01 00:27

carterdunk:R.TYPE非聚合函數,應寫在GROUP BY之外 07/01 00:27

GLTY:被插隊了XD" 07/01 00:28

ARCHERDEVIL:歐真的XD 07/01 00:29

ARCHERDEVIL:carterdunk是對的XD 07/01 00:30

k222:謝謝各位指教:)) 07/01 08:25

VampireClub:改成where r.rid=s.rid and r.type='small'? 07/01 08:58

k222:似乎是...請問HAVING只能放聚合函數嗎? 07/01 09:34

nightdealer:咦?鼎文的講義範例中,HAVING 也有使用非聚合函數說 07/04 13:28

您可能感興趣