[Programmers/프로그래머스] SQL High Score Kit : 재구매가 일어난 상품과 회원 리스트 구하기 (Oracle)
[Programmers/프로그래머스] SQL High Score Kit : 재구매가 일어난 상품과 회원 리스트 구하기 (Oracle)
문제
풀이
-
회원 ID와 상품 ID의 쌍으로 데이터를 묶고(GROUP BY), 해당 쌍의 개수가 2 이상이면 재구매(HAVING)
SELECT회원 ID, 상품 IDFROMONLINE_SALEGROUP BY회원 ID, 상품 IDHAVINGCOUNT(*)가 2 이상-
ORDER BY회원 ID 오름차순, 상품 ID 내림차순;
SQL문
1
2
3
4
5
6
// Oracle
SELECT USER_ID, PRODUCT_ID
FROM ONLINE_SALE
GROUP BY USER_ID, PRODUCT_ID
HAVING COUNT(*) >= 2
ORDER BY USER_ID, PRODUCT_ID DESC;
배운 점 메모
- WHERE과 HAVING의 차이
- WHERE
-
그룹화 또는 집계가 발생하기 전에 레코드를 필터링하는데 사용
-
GROUP BY 절 앞에 사용
-
- HAVING
-
그룹화 또는 집계가 발생한 후 레코드를 필터링하는데 사용
-
GROUP BY 절 뒤에 사용
-
- WHERE
This post is licensed under
CC BY 4.0
by the author.


