그래서 나는 목요일에 마지막으로 끝난 SQL 시험을 위해 많은 연습을하고 있는데 나는 또 다른 질문에 대해 의구심을 품는다.이 쿼리에서 최대 값을 어떻게 선택합니까? 시험에 대한 도움
연습 테이블은 호텔 DB에서 가져온 것입니다. 당신은 세 개의 테이블을 포함했다 :
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
그래서, 제일 먼저 아니에요 "
이 내가 그것을 해결하는 방식이 나는 괜찮은지 어떤지 모른다이다 (당신은 ID의 객실 타입 및 설명을 보여 주셔야합니다) 물론, 그 R. * 내가 포함되어 있습니다. 내가 SELECT에 넣을 수 있을까요? 그것도 GROUP BY에 포함될 수 있습니까?
시험에서 LIMIT 또는 SELECT TOP 1 문을 사용할 수 있는지 확실하지 않은 다른 사항. 누구든지 이것을 사용하지 않고 이것을 해결할 수있는 방법을 생각할 수 있습니까? MAX() 문 또는 무엇인가?
'LIMIT'는 ANSI가 아니며 MySQL, PostgreSQL 및 SQLite에서만 지원됩니다. 'FETCH FIRST # ROWS'는 ANSI입니다 만, 최근에야 ... –
@OMG Ponies 그래서 교수님은 최근에 ANSI에 최근에 추가되었으므로 교수님이 시험에서 그걸 허락하지 않으실 겁니다. 나는이 쿼리를 수행하는 또 다른 방법을 찾았습니다. – nachoargentina