728x90
https://school.programmers.co.kr/learn/courses/30/lessons/131123
GROUP BY 에 대해 조금 더 이해할 수 있었던 문제이다.
GROUP BY는 어떠한 컬럼을 기준으로 모든 것을 묶는 구문이다.
REST_IDREST_NAMEFOOD_TYPEVIEWSFAVORITESPARKING_LOTADDRESSTEL
00001 | 은돼지식당 | 한식 | 1150345 | 734 | N | 서울특별시 중구 다산로 149 | 010-4484-8751 |
00002 | 하이가쯔네 | 일식 | 120034 | 112 | N | 서울시 중구 신당동 375-21 | NULL |
00003 | 따띠따띠뜨 | 양식 | 1234023 | 102 | N | 서울시 강남구 신사동 627-3 1F | 02-6397-1023 |
00004 | 스시사카우스 | 일식 | 1522074 | 230 | N | 서울시 서울시 강남구 신사동 627-27 | 010-9394-2554 |
00005 | 코슌스 | 일식 | 15301 | 123 | N | 서울특별시 강남구 언주로153길 | 010-1315-8729 |
이 테이블에서 음식 타입으로 묶으면
은돼지 한식
하이가쯔네 일식
따띠따띠뜨 양식
이렇게 그룹화된다. 그리고 SUM, MAX 등 함수를 사용할 수 있는데, 중요한 건 그룹함수를 통해 값을 가져올 순 있지만 이미 테이블은 위처럼 만들어져있기 때문에 MAX 값에 대한 다른 컬럼은 가져올 수가 없다.
그래서 각 그룹의 최댓값을 가져와 그 값의 다른 컬럼도 출력하고 싶다면 서브쿼리를 사용해야한다.
-- 코드를 입력하세요
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;
'프로그래머스 풀이 > Lv 3' 카테고리의 다른 글
[프로그래머스 SQL] 조건에 맞는 사용자 정보 조회하기 (0) | 2024.10.02 |
---|---|
[프로그래머스Lv3] 단속카메라 (Java) (0) | 2024.09.30 |
[프로그래머스 SQL] 대여 기록이 존재하는 자동차 리스트 구하기 (0) | 2024.09.30 |
[프로그래머스 SQL]오랜 기간 보호한 동물(2) (0) | 2024.09.29 |
[프로그래머스 LV3] 풍선 터트리기 (C++) (0) | 2024.09.29 |