집 짓는 개발블로그
[프로그래머스] 재구매가 일어난 상품과 회원 리스트 구하기 (MySQL) - 2개 이상의 분류로 GROUP BY하기 본문
https://school.programmers.co.kr/learn/courses/30/lessons/131536
풀이를 시도하다가 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
내가 궁금한 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 |