-
SQL - 특정 최대 값을 가진 행 찾기문제풀이/SQL 2024. 4. 9. 17:50
코딩테스트 연습 - 즐겨찾기가 가장 많은 식당 정보 출력하기 | 프로그래머스 스쿨 (programmers.co.kr)
내가 낸 답은 max활용
select food_type, rest_id, rest_name, favorites from (SELECT food_type, rest_id, rest_name, favorites, max(favorites) over(partition by food_type) as max_fvr from rest_info)a where favorites = max_fvr order by 1 desc
max값을 조건 column에 따라 나누는 방식을 활용하였다.
max(column) over(partition by 'column') as ''
where 문의 조건 다는 방법.
# GROUP BY 사용 방법 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 FOOD_TYPE, REST_ID, REST_NAME, FAVORITES FROM REST_INFO A WHERE (FOOD_TYPE,FAVORITES) IN ( SELECT FOOD_TYPE, MAX(FAVORITES) FROM REST_INFO B WHERE A.FOOD_TYPE = B.FOOD_TYPE ) ORDER BY FOOD_TYPE DESC;
아래의 구문은 A, B 를 구별하는 이유를 모르겠다.
'문제풀이 > SQL' 카테고리의 다른 글
SQL - 가격'대'별 구분 (0) 2024.04.09 SQL - 문제 (0) 2024.04.03 SQL - 날짜조회(범위) (0) 2024.04.02 SQL 문제풀이 -3 (0) 2024.04.01 SQL 문제 풀이 - 2일차 (1) 2024.03.29