


[정답]
SELECT USER_ID, PRODUCT_ID
FROM ONLINE_SALE
GROUP BY USER_ID, PRODUCT_ID -- 1. 회원과 상품을 한 쌍으로 묶는다.
HAVING COUNT(*) >= 2 -- 2. 그 쌍이 2개 이상(재구매)인 경우만 남긴다.
ORDER BY USER_ID ASC, PRODUCT_ID DESC; -- 3. 정렬 조건 적용
✅ GROUP BY: 그룹으로 묶기
✅ HAVING: 그룹 전용 필터, 이미 GROUP BY로 묶인 결과에 대해 조건을 걸 때
✅ COUNT(*): 검색된 행(Row)의 전체 개수 반환 = COUNT(1)
- NULL 포함: 특정 컬럼을 지정해서 COUNT(컬럼명)을 쓰면 그 컬럼이 비어있는(NULL) 데이터는 빼고 센다. 하지만 COUNT(*)는 NULL 값을 포함한 모든 행을 다 센다.
- 중복 포함: 데이터 내용이 중복되더라도 한 줄, 두 줄... 행의 개수 그대로를 반환한다.
'프로그래머스 SQL 고득점 Kit > SELECT' 카테고리의 다른 글
| [SQL] 역순 정렬하기 (0) | 2026.02.27 |
|---|---|
| [SQL] 평균 일일 대여 요금 구하기 (0) | 2026.02.27 |
| [SQL] SELECT 기본 구조 (0) | 2026.02.27 |