테이블 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