728x90
SMALL
프로그래머스
SW개발자를 위한 평가, 교육, 채용까지 Total Solution을 제공하는 개발자 성장을 위한 베이스캠프
programmers.co.kr
-- 음식 종류별로 즐겨찾기 수가 가장 많은 식당의 음식 종류, ID, 식당 이름, 즐겨찾기수를 조회하는 SQL문
-- 결과는 음식 종류를 기준으로 내림차순 정렬
SELECT FOOD_TYPE, REST_ID, REST_NAME, FAVORITES
FROM REST_INFO
WHERE (FOOD_TYPE, FAVORITES)
IN (
SELECT FOOD_TYPE, MAX(FAVORITES)
FROM REST_INFO
GROUP BY FOOD_TYPE
)
ORDER BY FOOD_TYPE DESC
왜 이렇게 풀었을까?
- GROUP BY를 사용할 때에만 SELECT 구문에 MAX, MIN, SUM, AVG와 같은 구문을 사용할 수 있습니다.
- 저는 데이터를 음식 종류별로 묶은 뒤, 그룹별로 즐겨찾기 수가 가장 많은 식당을 찾아내야 했습니다. 따라서 GROUP BY로 그룹화한 뒤, MAX 구문으로 그에 해당하는 식당을 찾아낼 수 있었습니다!
- 조건절에는 WHERE ~ IN ~ 문법이 사용되었는데, 즐겨찾기 수가 가장 큰 식당에 해당하는 데이터만 뽑아내기 위함이었습니다.
- 마지막으로는 음식 종류(FOOD_TYPE)을 기준으로 내림차순 정렬하기 위해 DESC를 사용했습니다.
728x90
LIST
'알고리즘 문제 > SQL 고득점 Kit' 카테고리의 다른 글
📙 부서별 평균 연봉 조회하기 (2) | 2025.01.30 |
---|---|
📙 있었는데요 없었습니다 (2) | 2025.01.23 |
📙 카테고리 별 도서 판매량 집계하기 (0) | 2024.12.11 |
📙 조건별로 분류하여 주문상태 출력하기 (2) | 2024.12.08 |
📙 오랜 기간 보호한 동물(1) (3) | 2024.12.05 |