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

Table of Contents



二、假設某學校資料庫如下:
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 (*)可能會多算,

我不是很熟資料庫,

請問我的想法是否正確?

請各位大大解惑 感謝~~



--

All Comments

Zenobia avatarZenobia2013-07-05
用常識也知道不可能同時間有兩個課程用同一間教室
Una avatarUna2013-07-10
這和資料庫熟不熟沒關係好嗎這是常識
Jack avatarJack2013-07-13
不是很確定 我有點忘記count 會抓哪個table的資料
Hedda avatarHedda2013-07-16
但印象中如果用count(*)應該會抓全部
至於這裡的全部究竟是卡式積還是classroom 的我要想
Olga avatarOlga2013-07-19
正確寫法應該是count(s.time)
Isla avatarIsla2013-07-23
select 那邊也應該是s.cid 而不是r.cid 雖然也可以
Mia avatarMia2013-07-23
如果有某間SMALL的教室沒開放使用就不會被算到
Tristan Cohan avatarTristan Cohan2013-07-24
沒辦法找出每間教室使用次數包含0的小型教室
William avatarWilliam2013-07-25
HAVING R.TYPE='small' 錯了
Candice avatarCandice2013-07-29
樓上一語道破@@ 沒開放就不會有紀錄也不會被列出,這樣?
Sandy avatarSandy2013-08-03
R.TYPE非聚合函數,應寫在GROUP BY之外
Jessica avatarJessica2013-08-06
被插隊了XD"
Robert avatarRobert2013-08-07
歐真的XD
Doris avatarDoris2013-08-08
carterdunk是對的XD
Mary avatarMary2013-08-11
謝謝各位指教:))
Dora avatarDora2013-08-15
改成where r.rid=s.rid and r.type='small'?
Carol avatarCarol2013-08-17
似乎是...請問HAVING只能放聚合函數嗎?
Michael avatarMichael2013-08-19
咦?鼎文的講義範例中,HAVING 也有使用非聚合函數說