_Han_
나의 개발 노트
_Han_
  • 분류 전체보기 (272)
    • 데이터 엔지니어링 (29)
    • 인프라 (3)
    • 추천시스템 (11)
    • 코딩테스트 (146)
    • 부트캠프 회고 (15)
    • 회고 (4)
    • 자격증 (1)
    • 파이썬 프로그래밍 (6)
    • 통계 (2)
    • Git (21)
    • 유니티2D (33)

최근 글

반응형
hELLO · Designed By 정상우.
_Han_

나의 개발 노트

[코딩테스트] 프로그래머스 재구매가 일어난 상품과 회원 리스트 구하기 MySQL
코딩테스트

[코딩테스트] 프로그래머스 재구매가 일어난 상품과 회원 리스트 구하기 MySQL

2022. 11. 30. 14:49
반응형

https://school.programmers.co.kr/learn/courses/30/lessons/131536

 

프로그래머스

코드 중심의 개발자 채용. 스택 기반의 포지션 매칭. 프로그래머스의 개발자 맞춤형 프로필을 등록하고, 나와 기술 궁합이 잘 맞는 기업들을 매칭 받으세요.

programmers.co.kr

SELECT USER_ID, PRODUCT_ID
FROM ONLINE_SALE
GROUP BY USER_ID, PRODUCT_ID
HAVING COUNT(*) > 1
ORDER BY USER_ID ASC, PRODUCT_ID DESC

GROUP BY문을 통하여 2개의 컬럼(USER_ID, PRODUCT_ID)를 그룹화하고 HAVING문에서 조건을 주어 문제를 해결했습니다.

 

먼저 HAVING문이 없고 COUNT(*)를 추가한 결과를 확인해보겠습니다.

SELECT USER_ID, PRODUCT_ID, COUNT(*)
FROM ONLINE_SALE
GROUP BY USER_ID, PRODUCT_ID
ORDER BY USER_ID ASC, PRODUCT_ID DESC

빨간색 박스처럼 COUNT(*)를 했을때 2개이상인 데이터만 추출해야하기 때문에

HAVING문에서 COUNT(*) > 1을 하여 2개이상의 데이터만 추출하였습니다.

 

ORDER BY문에서는 문제에서 요구한대로 회원ID(USER_ID)를 기준으로 오름차순(ASC)정렬하고 회원ID(USER_ID)가 동일하다면 상품ID(PRODUCT_ID)를 기준으로 내림차순(DESC)정렬하여 출력하였습니다.

반응형

'코딩테스트' 카테고리의 다른 글

[코딩테스트] 프로그래머스 치킨 쿠폰 파이썬(Python)  (0) 2022.12.01
[코딩테스트] 프로그래머스 오랜 기간 보호한 동물(1) MySQL  (0) 2022.12.01
[코딩테스트] 프로그래머스 가격대 별 상품 개수 구하기 MySQL  (0) 2022.11.30
[코딩테스트] 프로그래머스 3월에 태어난 여성 회원 목록 출력하기 MySQL  (2) 2022.11.29
[코딩테스트] 프로그래머스 진료과별 총 예약 횟수 출력하기  (0) 2022.11.29
    '코딩테스트' 카테고리의 다른 글
    • [코딩테스트] 프로그래머스 치킨 쿠폰 파이썬(Python)
    • [코딩테스트] 프로그래머스 오랜 기간 보호한 동물(1) MySQL
    • [코딩테스트] 프로그래머스 가격대 별 상품 개수 구하기 MySQL
    • [코딩테스트] 프로그래머스 3월에 태어난 여성 회원 목록 출력하기 MySQL
    _Han_
    _Han_
    학습한 것을 기록합니다.

    티스토리툴바