코딩테스트 - SQL

Yohan·2024년 10월 4일
0

코딩기록

목록 보기
153/156
post-custom-banner

문제1

ONLINE_SALE 테이블에서 동일한 회원이 동일한 상품을 재구매한 데이터를 구하여, 재구매한 회원 ID와 재구매한 상품 ID를 출력하는 SQL문을 작성해주세요. 결과는 회원 ID를 기준으로 오름차순 정렬해주시고 회원 ID가 같다면 상품 ID를 기준으로 내림차순 정렬해주세요.

  • 재구매 한 것들을 조회하면됨

풀이

  • 재구매 한 것들의 USER_ID와 PRODUCT_ID를 모두 조회해야하므로 WHERE 대신 GROUP BY를 사용
    -> GROUP BY를 사용하여 그룹화하고 HAVING을 통해 COUNT(*) >= 2 조건을 걸면 재구매했던 것들을 모두 보여줄 수 있기 때문이다.

DISTINCT 위치

  • COUNT(DISTINCT NAME) 이런식으로 중복되지 않은 이름의 COUNT를 셀 때에는 COUNT 안에 넣어준다.

문제2

FOOD_PRODUCT 테이블에서 가격이 제일 비싼 식품의 식품 ID, 식품 이름, 식품 코드, 식품분류, 식품 가격을 조회하는 SQL문을 작성해주세요.

풀이

  • 가격이 제일 비싼 것 딱 1개만 조회하면 된다.
    -> LIMIT을 활용
SELECT *
FROM FOOD_PRODUCT
ORDER BY PRICE DESC
LIMIT 1;
profile
백엔드 개발자
post-custom-banner

0개의 댓글