[프로그래머스] MYSQL LEVEL 2 (15~20)

Hyeon·2024년 9월 12일

SQL 문제 풀이

목록 보기
8/61

🚩오늘의 문제는?

SQL - level 2

1.조건에 맞는 도서와 저자 리스트 출력하기
2.상품 별 오프라인 매출 구하기
3.성분으로 구분한 아이스크림 총 주문량
4.루시와 엘라 찾기
5.3월에 태어난 여성 회원 목록 출력하기
6.가격대 별 상품 개수 구하기

1.조건에 맞는 도서와 저자 리스트 출력하기

문제 설명

문제 풀이

SELECT A.BOOK_ID, B.AUTHOR_NAME, DATE_FORMAT(A.PUBLISHED_DATE,'%Y-%m-%d') AS PUBLISHED_DATE
FROM BOOK A JOIN AUTHOR B
ON A.AUTHOR_ID = B.AUTHOR_ID
WHERE A.CATEGORY ='경제'
ORDER BY A.PUBLISHED_DATE;

주의할 점

2.상품 별 오프라인 매출 구하기

문제 설명

문제 풀이

SELECT A.PRODUCT_CODE , SUM(A.PRICE* B.SALES_AMOUNT) AS SALES
FROM PRODUCT A JOIN OFFLINE_SALE B
ON A.PRODUCT_ID = B.PRODUCT_ID
GROUP BY A.PRODUCT_CODE
ORDER BY SALES DESC, A.PRODUCT_CODE ASC
 ;

주의할 점

  • '상품코드별' 매출액의 합계를 출력하라는 언급이 있었다.
    (1) 상품코드별 : GROUP BY PRODUCT_ID
    (2) 매출액의 합계를 출력: SELECT SUM (PRODUCT_AMOUND * PRODUCT_PRICE ) AS TOTAL_PRICE
    -> 다음과 같이 GROUP BY 와 SUM을 써서 값을 구하면 된다.

3.성분으로 구분한 아이스크림 총 주문량

문제 설명

문제 풀이

SELECT B.INGREDIENT_TYPE, SUM(A.TOTAL_ORDER) AS TOTAL_ORDER 
FROM FIRST_HALF A JOIN ICECREAM_INFO B
ON A.FLAVOR = B.FLAVOR
GROUP BY B.INGREDIENT_TYPE
ORDER BY SUM(A.TOTAL_ORDER) ASC;

주의할 점

  • 총주문량이 작은 순서대로 조회
    : ORDER BY TOTAL_AMOUNT ASC;

4.루시와 엘라 찾기

문제 설명

문제 풀이

SELECT ANIMAL_ID	,NAME,SEX_UPON_INTAKE
FROM ANIMAL_INS
WHERE NAME IN ('Lucy', 'Ella', 'Pickle', 'Rogan', 'Sabrina', 'Mitty')
ORDER BY ANIMAL_ID;

5.3월에 태어난 여성 회원 목록 출력하기

문제 설명

문제 풀이

SELECT MEMBER_ID, MEMBER_NAME, GENDER, DATE_FORMAT(DATE_OF_BIRTH, '%Y-%m-%d') AS DATE_OF_BIRTH
FROM MEMBER_PROFILE
WHERE TLNO IS NOT NULL AND GENDER='W' AND MONTH(DATE_OF_BIRTH)=3
ORDER BY MEMBER_ID;

6.가격대 별 상품 개수 구하기

문제 설명

문제 풀이

-- 코드를 입력하세요

SELECT SUBSTR(PRICE,1,1)*10000 AS PRICE_GROUP , COUNT(*) AS PRODUCTS
FROM PRODUCT
GROUP BY PRICE_GROUP
ORDER BY PRICE_GROUP ASC;

주의할 점

  • 가격대 10000만원 단위로 출력하는 컬럼
    1) 문자열을 활용하여 맨 앞글자 1개만 출력되도록 한다.
    2) 그 다음 10000을 곱한다.
    *참고로 여기서는 10000원 이하의 값이 없어서 PRODUCTS에서 따로 출력이 되지는 않음
    그러나 있을경우에 CASE구문을 활용해서 10000원 이하의 그룹은 0으로 값을 치환하기

0개의 댓글