所以,我要通過很多練習來進行最後一次SQL考試,我遇到了另一個我懷疑的問題。如何在此查詢中選擇最大值?考試幫助
練習中的表格應該來自酒店數據庫。您已經涉及三個表:
STAY ROOM ROOM_TYPE
=========== ============ ============
PK ID_STAY PK ID_ROOM PK ID_ROOM_TYPE
DAYS_QUANT ID_ROOM_TYPE FK DESCRIPTION
DATE PRICE
ID_ROOM FK
他們要求我做的查詢是「顯示所有在2011年已被租用的天最高量(總量)客房數據,通過房型(你必須出示身份證房型及說明)」
這是我解決的方式,我不知道它是否可以:
SELECT RT.ID_ROOM_TYPE, RT.DESCRIPTON, R.*, SUM(S.DAYS_QUANT)
FROM STAY S, ROOM R, ROOM_TYPE RT
WHERE YEAR(S.DATE) = '2011'
GROUP BY RT.ID_ROOM_TYPE, RT.DESCRIPTON, R.*
ORDER BY SUM(S.DAYS_QUANT) DESC
LIMIT 1
所以,第一件事我不肯定的是,我是否包括R. *。我可以在SELECT中這樣嗎?它也可以包含在GROUP BY中嗎?
另一件事我不確定我是否可以在考試中使用LIMIT或SELECT TOP 1語句。任何人都可以想出一種方法來解決這個問題而不使用這些?像MAX()語句或類似的東西?
'LIMIT'不是ANSI,只支持MySQL,PostgreSQL和SQLite。 'FETCH FIRST#ROWS'是ANSI,但直到最近...... – 2012-02-26 05:52:18
@OMG小馬這麼說......教授在考試中不會讓我們這麼做,因爲它只是最近才被添加到ANSI中......我想我最好找到另一種方法來做這個查詢 – nachoargentina 2012-02-26 06:00:41