반응형
문제 출처
https://school.programmers.co.kr/learn/courses/30/lessons/131536
문제 풀이
`GROUP BY`와 `HAVING` 절은
- 데이터를 그룹화하고,
- 특정 조건을 만족하는 그룹만을 필터링한다.
## GROUP BY
- 데이터를 특정 컬럼 기준으로 그룹화하는 데 사용된다.
- USER_ID와 PRODUCT_ID 기준으로 데이터를 그룹화하고 있습니다.
- 예를 들어, USER_ID가 1이고 PRODUCT_ID가 101인 모든 행이 하나의 그룹으로 묶입니다.
## HAVING
- GROUP BY로 그룹화된 결과에 조건을 적용하는 데 사용된다.
- WHERE 절과 비슷하지만, WHERE 절은 개별 행에 조건을 적용하는 반면 HAVING 절은 그룹화된 데이터에 조건을 적용합니다.
- HAVING COUNT(*) >= 2는 행의 수가 2개 이상인 그룹만을 선택하겠다는 의미
- 즉, 특정 사용자가 동일한 상품을 두 번 이상 구매한 경우에만 그 그룹이 결과에 포함됩니다.
정답 코드
SELECT USER_ID, PRODUCT_ID
FROM ONLINE_SALE
GROUP BY USER_ID, PRODUCT_ID
HAVING COUNT(*) >= 2
ORDER BY USER_ID ASC, PRODUCT_ID DESC
반응형
'알고리즘 문제 풀기 > sql' 카테고리의 다른 글
프로그래머스: 조건에 맞는 도서 리스트 출력하기 - MySQL (0) | 2024.08.08 |
---|---|
프로그래머스: 12세 이하인 여자 환자 목록 출력하기 - MySQL (0) | 2024.08.07 |
프로그래머스: 강원도에 위치한 생산공장 목록 출력하기 - MySQL (0) | 2024.08.06 |
프로그래머스: 인기있는 아이스크림 - MySQL (0) | 2024.08.05 |
프로그래머스: 조건에 부합하는 중고거래 댓글 조회하기 - MySQL (0) | 2024.08.04 |