테이블 index
문제
REST_INFO
테이블에서 음식종류별로 즐겨찾기수가 가장 많은 식당의 음식 종류, ID, 식당 이름, 즐겨찾기수를 조회하는 SQL문을 작성해주세요. 이때 결과는 음식 종류를 기준으로 내림차순 정렬해주세요.예시

풀이
단순하게
max
함수를 사용하여서 푸는 문제인줄 알았다. 하지만 계속 오답이라고 하여서 검색을 해본 결과. group by
를 하였을 때는 각 그룹의 첫 번째 행으로 겹쳐지기 때문에 FAVORITES
만 가장 높은 값이 나오고 나머지 3개의 column
은 각 그룹의 첫 번째 행의 데이터가 출력되었던 것이다.SELECT FOOD_TYPE, REST_ID, REST_NAME, max(FAVORITES) FAVORITES
from REST_INFO
group by FOOD_TYPE
order by FOOD_TYPE desc

그래서 사용한 방법은
SubQuery
이다. SubQuery
를 사용하여 먼저 FAVORITES
이 가장 많은 데이터를 출력 후 그 이후에 한번 더 group by
를 하여서 푸는 문제였다. select FOOD_TYPE, REST_ID, REST_NAME, FAVORITES
from REST_INFO
where FAVORITES in
(SELECT max(FAVORITES)
from REST_INFO
group by food_type)
group by food_type
order by food_type desc

Share article