728x90
프로그래머스
SW개발자를 위한 평가, 교육의 Total Solution을 제공하는 개발자 성장을 위한 베이스캠프
programmers.co.kr
- 같은 사람이 (USER_ID)
- 같은 상품을 (PRODUCT_ID)
- 2번 이상 구매했는지 확인
>GROUP BY + HAVING
# 동일한 회원이 동일한 상품을 재구매
# 회원 ID, 재구매 상품 ID
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
WHERE vs HAVING 차이
WHERE
그룹화 전에 행(row) 필터링
SELECT *
FROM table
WHERE age >= 20
의미:
20살 이상 행만 남긴다
→ 그 다음 GROUP BY
HAVING
그룹화 후에 그룹 필터링
예:
SELECT department, COUNT(*)
FROM employee
GROUP BY department
HAVING COUNT(*) >= 3
의미:
- 부서별로 그룹 묶음
- 각 그룹 인원수 계산
- 인원 3명 이상 그룹만 남김
'Algorithm > SQL' 카테고리의 다른 글
| [MySQL] 동명 동물 수 찾기 (0) | 2026.06.25 |
|---|---|
| [MySQL] 상품 별 오프라인 매출 구하기 (0) | 2026.06.25 |
| [MySQL] 성분으로 구분한 아이스크림 총 주문량 (0) | 2026.06.24 |
| [MySQL] 조건에 맞는 도서 리스트 출력하기 / 날짜 관련 함수 (0) | 2026.06.24 |
| [MySQL] 주문량이 많은 아이스크림들 조회하기 (0) | 2026.06.24 |