2024년 01월 03일
1. 문제
2. 나의 풀이
SELECT FOOD_TYPE, REST_ID, REST_NAME, MAX(FAVORITES) FROM REST_INFO
GROUP BY FOOD_TYPE
ORDER BY FOOD_TYPE DESC
- SELECT FOOD_TYPE, REST_ID, REST_NAME, MAX(FAVORITES) FROM REST_INFO : REST_INFO 테이블의 FOOD_TYPE, REST_ID, REST_NAME, FAVORITES 컬럼을 조회하는데 MAX 함수를 사용하여 FAVORITES 컬럼 레코드의 최대 값을 가진 레코드를 조회한다.
- GROUP BY FOOD_TYPE : FOOD_TYPE을 기준으로 그루핑한다.
- ORDER BY FOOD_TYPE DESC : FOOD_TYPE을 기준으로 내림차순 정렬한다.
3. 다른 풀이
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
- SELECT FOOD_TYPE, REST_ID, REST_NAME, FAVORITES FROM REST_INFO : REST_INFO 테이블의 FOOD_TYPE, REST_ID, REST_NAME, FAVORITES 컬럼을 조회한다.
- WHERE FAVORITES IN (서브쿼리) : 서브쿼리로 음식 종류별로 가장 별점이 높은 별점을 찾아낸 후 WHERE절의 IN을 활용하여 FAVORITES 컬럼의 일치하는 레코드를 조회한다.
- GROUP BY FOOD_TYPE : FOOD_TYPE을 기준으로 그루핑한다.
- ORDER BY FOOD_TYPE DESC : FOOD_TYPE을 기준으로 내림차순 정렬한다.