https://school.programmers.co.kr/learn/courses/30/lessons/131123
프로그래머스
SW개발자를 위한 평가, 교육, 채용까지 Total Solution을 제공하는 개발자 성장을 위한 베이스캠프
programmers.co.kr
📚문제
REST_INFO 테이블에서 음식종류별로 즐겨찾기수가 가장 많은 식당의 음식 종류, ID, 식당 이름, 즐겨찾기수를 조회하는 SQL문을 작성해주세요. 이때 결과는 음식 종류를 기준으로 내림차순 정렬해주세요.
✏️ 내 풀이
아래의 코드를 실행하게 되면 그룹별로 가장 높은 FAVORITES 값을 가져오지만 그에 맞는 REST_ID와 REST_NAME 을 가져오지 못한다.
SELECT FOOD_TYPE, REST_ID, REST_NAME, MAX(FAVORITES) AS FAVORITES
FROM REST_INFO
GROUP BY FOOD_TYPE
ORDER BY FOOD_TYPE DESC
✏️ 좋은 풀이
우선 그룹별로 가장 FAVORITES 값을 추출하고 그와 매치되는 FOOD_TYPE,REST_ID,REST_NAME,FAVORITES 값을 가져오면 된다.
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 1
ORDER BY 1 DESC
✒️ 회고
- 문제가 짧아서 방심하여 너무 간단하게 생각했던거 같다. SQL 의 특성을 잘 이해하고 다음엔 안틀리도록 고심해서 문제를 풀어야겠다.
'코딩테스트 > SQL' 카테고리의 다른 글
[MySQL]년, 월, 성별 별 상품 구매 회원 수 구하기 (0) | 2025.04.14 |
---|---|
[MySQL] 없어진 기록 찾기 (0) | 2025.04.11 |
[Mysql] 가격대 별 상품 개수 구하기 (0) | 2025.04.07 |
[SQL]NULL 처리하기 (0) | 2025.03.07 |
[SQL]Lv5. 예산이 가장 큰 프로젝트는? (0) | 2025.01.23 |