마다가스카르
[프로그래머스] 재구매가 일어난 상품과 회원 리스트 구하기 (MySQL) - 2개 이상의 분류로 GROUP BY하기 본문
https://school.programmers.co.kr/learn/courses/30/lessons/131536
프로그래머스
코드 중심의 개발자 채용. 스택 기반의 포지션 매칭. 프로그래머스의 개발자 맞춤형 프로필을 등록하고, 나와 기술 궁합이 잘 맞는 기업들을 매칭 받으세요.
programmers.co.kr
풀이를 시도하다가 group by 다음에 두 개의 컬럼을 쓰고 싶었다. 근데 그게 되는 거였나 헷갈렸다...
정리의 필요성을 느꼈다. ^^
제출한 쿼리
SELECT USER_ID, PRODUCT_ID
FROM ONLINE_SALE
GROUP BY USER_ID, PRODUCT_ID
HAVING COUNT(SALES_DATE) >= 2
ORDER BY USER_ID, PRODUCT_ID DESC;
두 개 이상의 컬럼으로 그룹핑한 것을 확인할 수 있다.
참고할만한 글을 소개한다.
https://dev.mysql.com/doc/refman/8.0/en/group-by-modifiers.html
MySQL :: MySQL 8.0 Reference Manual :: 14.19.2 GROUP BY Modifiers
14.19.2 GROUP BY Modifiers The GROUP BY clause permits a WITH ROLLUP modifier that causes summary output to include extra rows that represent higher-level (that is, super-aggregate) summary operations. ROLLUP thus enables you to answer questions at multip
dev.mysql.com
내가 궁금한 group by 부분은 다음과 같다.
ROLLUP은 일단 제쳐두고, year, country, product 3개의 컬럼으로 그룹핑한 결과를 살펴본다. 대분류인 year, 중분류인 country, 소분류인 product를 순서대로 확인할 수 있다.
(year-country-product)가 통째로 한 개의 기준이 되어 그룹핑에 활용된다고 생각하면 이해가 쉽다.
위 예시에서는 2000-Finland-Computer와 2000-Finland-Phone이 대분류와 중분류는 같지만, 사실 서로 다른 그룹에 속한다.
'MySQL' 카테고리의 다른 글
SELECT 시 테이블 Alias 필수 사용 (MySQL) (0) | 2024.09.09 |
---|---|
WITH RECURSIVE CTE 사용하기 (MySQL) (0) | 2024.09.09 |
[프로그래머스] 입양 시각 구하기(2) (MySQL) - WITH RECURSIVE CTE (0) | 2024.07.05 |
[프로그래머스] 특정 세대의 대장균 찾기 (MySQL) (0) | 2024.07.05 |
[프로그래머스] 이름에 el이 들어가는 동물 찾기 (MySQL) - LIKE, INSTR, LOCATE (0) | 2024.07.05 |