코딩테스트 연습 - 즐겨찾기가 가장 많은 식당 정보 출력하기 | 프로그래머스 스쿨
프로그래머스
SW개발자를 위한 평가, 교육의 Total Solution을 제공하는 개발자 성장을 위한 베이스캠프
programmers.co.kr
음식 종류별로 즐겨찾기 수가 가장 많은 음식점을 조회하는 간단한 문제
-- 코드를 입력하세요
SELECT food_type, rest_id, rest_name, max(favorites) as favorites from rest_info
group by food_type
order by food_type desc;
단순히 group by하고 max(favorites)하면 될줄 알았는데 그냥 틀리더라고

group by하는 순간 임의의 한 행으로 묶어버리더라고?
select * from rest_info
group by food_type;

그러다보니 일식집에서 favorites이 가장 큰 곳은 실제로 스시사카우스인데,

위 쿼리대로 하면... 하이가쯔네가 나오더라고
하이가쯔네는 favorite이 112인데... 안맞지


먼저 max(favorites)을 찾고, 이를 서브쿼리로 만들어서, 이 서브쿼리 테이블이랑, 원래 테이블을 합쳐가지고
이 max값과 일치하는 음식점을 찾는 방법으로 해결하자
-- 코드를 입력하세요
SELECT A.food_type, B.rest_id, B.rest_name, A.favorites FROM (SELECT food_type, max(favorites) as favorites from rest_info
group by food_type) A, REST_INFO B
WHERE A.food_type = B.food_type and A.favorites = B.favorites
ORDER BY A.food_type desc;
이러면 스시사카우스로 제대로 나옴

728x90
'프로그래밍 > SQL' 카테고리의 다른 글
| SQL 코딩테스트 대비 연습 스킬 복기하기 (0) | 2025.06.13 |
|---|---|
| MYSQL은 FULL OUTER JOIN이 없다고? (0) | 2025.06.13 |
| where절에 분명히 있는 column명을 썼는데 없다고 에러가 나는 이유(unknown column) (0) | 2024.10.26 |
| 문자열이 특정한 조건을 만족하는 형태로 이루어져있는지 체크하는 방법(정규표현식) (0) | 2024.10.25 |
| 특정 문자 기준으로 문자열을 자르는 SUBSTRING_INDEX() (0) | 2024.10.23 |
