프로그래머스 코딩테스트/MySQL 63

[프로그래머스] 상품 별 오프라인 매출 구하기 MySQL

제목[프로그래머스] 상품 별 오프라인 매출 구하기정답 SELECT P.PRODUCT_CODE, P.PRICE * SUM(OS.SALES_AMOUNT) SALESFROM PRODUCT P INNER JOIN OFFLINE_SALE OS ON P.PRODUCT_ID = OS.PRODUCT_IDGROUP BY P.PRODUCT_CODEORDER BY SALES DESC, P.PRODUCT_CODEINNER JOIN으로 PRODUCT에 있는 항목만 합쳤습니다. 그 다음 SUM을 통해 PRICE와 곱해서 답을 구했습니다.

[프로그래머스] 카테고리 별 도서 판매량 집계하기 MySQL

제목[프로그래머스] 카테고리 별 도서 판매량 집계하기정답 SELECT CATEGORY, SUM(BS.SALES) TOTAL_SALESFROM BOOK_SALES BS JOIN BOOK B ON BS.BOOK_ID = B.BOOK_IDWHERE DATE_FORMAT(BS.SALES_DATE, '%Y%m') = 202201GROUP BY CATEGORYORDER BY CATEGORYJOIN을 통해 테이블을 합치고 2022년 1월의 도서를 구하기 위해 DATE_FORMAT을 통해 년과 월만 뽑아 WHERE를 통하여 구했습니다.

[프로그래머스] 오랜 기간 보호한 동물(1) MySQL

제목[프로그래머스] 오랜 기간 보호한 동물(1)정답SELECT AI.NAME, AI.DATETIMEFROM ANIMAL_INS AI LEFT JOIN ANIMAL_OUTS AO ON AO.ANIMAL_ID = AI.ANIMAL_IDWHERE AO.DATETIME IS NULLORDER BY AI.DATETIMELIMIT 3LEFT JOIN을 하여 ANIMAL_INS 테이블을 모두 불러온 뒤에 ANIMAL_OUTS의 DATETIME이 NULL(입양가지 못한 동물)인 값들만 추출하여 정렬 후 오래된 3(LIMIT 3)마리를 뽑아 답을 구했습니다.

[프로그래머스] 자동차 종류 별 특정 옵션이 포함된 자동차 수 구하기 MySQL

제목[프로그래머스] 자동차 종류 별 특정 옵션이 포함된 자동차 수 구하기 정답SELECT CAR_TYPE, COUNT(1) CARSFROM CAR_RENTAL_COMPANY_CAR WHERE OPTIONS LIKE '%통풍시트%' OR OPTIONS LIKE '%열선시트%' OR OPTIONS LIKE '%가죽시트%'GROUP BY CAR_TYPEORDER BY CAR_TYPEOPTIONS에서 통풍시트, 열선시트, 가죽시트 중 하나만 포함되어 있어도 나오도록 WHERE절에 조건을 주어 풀었습니다.

[프로그래머스] 카테고리 별 상품 개수 구하기 MySQL

제목[프로그래머스] 카테고리 별 상품 개수 구하기정답SELECT SUBSTR(PRODUCT_CODE, 1, 2) CATEGORY, COUNT(PRODUCT_ID) PRODUCTSFROM PRODUCTGROUP BY 1문자의 앞부분을 자르기 위해 SUBSTR을 사용하였고, 상품별로 묶기 위해 GROUP BY를 사용하였습니다. GROUP BY뒤에 숫자가 오는것은 SELECT에서 위치를 의미합니다. 따라서 1의 의미는 CATEGORY입니다.