문제 파악

- 출력할 컬럼 : 재구매한 회원 ID, 재구매한 상품 ID ⇒ SELECT
- 데이터를 가져올 테이블 : ONLINE_SALE ⇒ FROM
- 조회 순서 : 회원 ID 기준 오름차순, 같다면 상품 ID 기준 내림차순 ⇒ ORDER BY
- 적용할 조건 : “동일한 회원”이 “동일한 상품”을 재구매한 데이터 count ⇒ COUNT
문제 해결 과정
💡 Group by, Having
아래 글 참고!
동명 동물 수 찾기 [group by, having]
문제 파악 출력할 컬럼 : 동물의 이름, 이름이 쓰인 횟수 ⇒ SELECT 데이터를 가져올 테이블 : ANIMAL_INS ⇒ FROM 조회 순서 : 이름 순 ⇒ ORDER BY 집계할 내용 : 이름이 없는 동물을 제외하고, 이름이 쓰
seheehee.tistory.com
⚡ Group by에 여러 개의 컬럼을 넣어 그룹화하기
⇒ group by에 여러 개의 컬럼을 넣어 다양한 경우의 수로 그룹화할 수 있다.
group by 성별, 나이
# => 성별과 나이가 동일한 그룹으로 그룹화 가능
💡 Count
✅ 갯수를 세어주는 집계함수
→ 아래 게시글 참고!
동명 동물 수 찾기 [group by, having]
문제 파악 출력할 컬럼 : 동물의 이름, 이름이 쓰인 횟수 ⇒ SELECT 데이터를 가져올 테이블 : ANIMAL_INS ⇒ FROM 조회 순서 : 이름 순 ⇒ ORDER BY 집계할 내용 : 이름이 없는 동물을 제외하고, 이름이 쓰
seheehee.tistory.com
문제 해결
- group by로 그룹화
- Having 조건으로 출력 조건 걸기 ⇒ count(*) 가 2 이상인 row만 출력
- count 집계함수로 group by로 그룹화 한 그룹 별 개수 확인

> 완성 코드
select user_id, product_id
from online_sale
group by user_id, product_id
having count(*)>1
order by user_id, product_id desc;'Technique > MySQL' 카테고리의 다른 글
| [Lv.2] 자동차 평균 대여기간 구하기 [datediff, timediff, avg, round] (0) | 2024.05.06 |
|---|---|
| [Lv.2] 가격대 별 상품 개수 구하기 [case when, between] (0) | 2024.05.06 |
| [Lv.2] 중복 제거하기 [count, distinct] (0) | 2024.05.06 |
| [Lv.2] NULL 처리하기 [ifnull, coalesce] (0) | 2024.05.06 |
| [Lv.2] 동명 동물 수 찾기 [group by, having] (0) | 2024.04.09 |