노아

[프로그래머스] 즐겨찾기가 가장 많은 식당 정보 출력하기 본문

알고리즘/SQL

[프로그래머스] 즐겨찾기가 가장 많은 식당 정보 출력하기

Noaahhh 2024. 9. 17. 15:11

 

Question

 

REST_INFO 테이블에서 음식종류별로 즐겨찾기수가 가장 많은 식당의 음식 종류, ID, 식당 이름, 즐겨찾기수를 조회하는 SQL문을 작성해주세요. 이때 결과는 음식 종류를 기준으로 내림차순 정렬해주세요.

 

 

Pseudocode

 

 

  1. REST_INFO 테이블에서 각 행(r1)의 FOOD_TYPE, REST_ID, REST_NAME을 선택.
  2. 서브쿼리를 사용하여 r1.FOOD_TYPE과 일치하는 음식 유형(FOOD_TYPE) 내에서 가장 많은 FAVORITES를 가진 값을 계산.
  3. 서브쿼리에서 동일한 FOOD_TYPE의 최대 FAVORITES 값을 가져와 favorites로 표시.
  4. 메인 쿼리의 각 음식 유형에 대해 해당되는 최대 FAVORITES 값을 계산하여 반환.

 

 

 

Code

 

select r1.FOOD_TYPE, r1.REST_ID, r1.REST_NAME, (
    select max(r2.favorites) as favorites
    from rest_info r2
    group by r2.food_type
    having r2.food_type = r1.food_type and r2.FAVORITES = r1.FAVORITES
) as fovorites
from REST_INFO r1