프로그래머스
코드 중심의 개발자 채용. 스택 기반의 포지션 매칭. 프로그래머스의 개발자 맞춤형 프로필을 등록하고, 나와 기술 궁합이 잘 맞는 기업들을 매칭 받으세요.
programmers.co.kr
링크를 클릭하면 해당 문제로 이동합니다.
1. 단계별로 접근하기
1) 음식종류(FOOD_TYPE)별로 즐겨찾기수가 가장 높은 데이터 출력
SELECT FOOD_TYPE, MAX(FAVORITES) AS FAVORITES
FROM REST_INFO
GROUP BY FOOD_TYPE;
FOOD_TYPE(음식종류) | FAVORITES(즐겨찾기수) |
한식 | n |
분식 | n |
일식 | n |
양식 | n |
중식 | n |
2) 그 식당의 음식 종류, ID, 식당 이름, 즐겨찾기수 출력 (정렬기준 : 음식 종류 내림차순)
SELECT R.FOOD_TYPE, R.REST_ID, R.REST_NAME, R.FAVORITES
FROM REST_INFO R, (SELECT FOOD_TYPE, MAX(FAVORITES) AS FAVORITES
FROM REST_INFO
GROUP BY FOOD_TYPE
ORDER BY FAVORITES DESC) B
WHERE R.FOOD_TYPE = B.FOOD_TYPE AND B.FAVORITES = R.FAVORITES
ORDER BY B.FOOD_TYPE DESC;
FOOD_TYPE(음식종류) | REST_ID(식당ID) | REST_NAME(식당이름) | FAVORITES(즐겨찾기수) |
한식 | 00001 | 식당1 | n |
중식 | 00005 | 식당5 | n |
일식 | 00003 | 식당3 | n |
양식 | 00004 | 식당4 | n |
분식 | 00002 | 식당2 | n |
2. 풀이
2단계의 FROM절에 1단계에 정의해놓은 테이블을 사용하여 'B' 라는 Alias를 붙여주고 B 테이블과 REST_INFO 테이블을 조인하여 결과를 출력하는 방식으로 풀어보았다.
'데이터베이스 > MYSQL' 카테고리의 다른 글
[MYSQL] 오랜 기간 보호한 동물(2) (0) | 2023.01.08 |
---|---|
[MYSQL] 가격대 별 상품 개수 구하기 (1) | 2023.01.07 |
[MYSQL] 식품분류별 가장 비싼 식품의 정보 조회하기 (0) | 2023.01.07 |
[MYSQL] 성분으로 구분한 아이스크림 총 주문량 (0) | 2023.01.05 |
[MYSQL] 과일로 만든 아이스크림 고르기 (0) | 2023.01.04 |
댓글