2024-05-10

강대·2024년 5월 10일
post-thumbnail

안녕하세요 금요일이네용 !!!!
열심히 막판 스퍼트 달려보자구요

🏃‍♀️💨💨





♾️ SQL 코드카타 복습


🖌️ 67번 문제 - 주문량이 많은 아이스크림들 조회하기

7월 아이스크림 총 주문량과 상반기의 아이스크림 총 주문량을 더한 값이 큰 순서대로 상위 3개의 맛을 조회하는 SQL 문을 작성해주세요.

이 문제는 정답 예시로

FLAVOR
strawberry
mango
chocolate 

테이블 하나만 출력됐기 때문에
두 개 테이블을 join 시켜주고
총 주문량도 합쳐야하고 상위 3개 맛만 조회해달라고 했으니
Limit이 걸려있는 걸 알 수 있네요 !!

깨닫기까지 오래 걸림



SELECT F.FLAVOR >> 메인쿼리 테이블의 컬럼 사용
FROM FIRST_HALF F INNER JOIN
(
SELECT FLAVOR, sum(TOTAL_ORDER) AS JULY_TOTAL_ORDER
FROM JULY
GROUP BY 1
>> 7월 아이스크림 주문 정보 테이블 서브쿼리 
>> FIRST_HALF과 총 주문량 컬럼이 겹치기 때문에 별칭 생성
+ sum함수는 서브쿼리에서 그룹화된 결과의 총 주문량을 계산하기 위해서 생성
) J ON F.FLAVOR = J.FLAVOR >> 테이블끼리 join
ORDER BY TOTAL_ORDER + JULY_TOTAL_ORDER DESC
>> 두 개의 테이블의 총 주문량 합산 후 내림차순 정렬
LIMIT 3 >> 상위 3개 맛만 출력

실제 JULY 테이블에선 딸기맛이 2개로 나눠져있기 때문에
정말 sum함수를 사용해줄 이유가 더 생겼네요

아무튼 이렇게 출력해주시면 정답처리 완👍



🖌️ 69번 문제 - 대여횟수가 많은 자동차들의 월별 대여 횟수 구하기

CAR_RENTAL_COMPANY_RENTAL_HISTORY 테이블에서 대여 시작일을 기준으로 2022년 8월부터 2022년 10월까지 총 대여 횟수가 5회 이상인 자동차들에 대해서 해당 기간 동안의 월별 자동차 ID 별 총 대여 횟수(컬럼명: RECORDS) 리스트를 출력해주세요.
결과는 월을 기준으로 오름차순 정렬하고, 월이 같다면 자동차 ID를 기준으로 내림차순 정렬해주세요.
특정 월의 총 대여 횟수가 0인 경우에는 결과에서 제외해주세요.

이번 문제는 테이블은 하나네요 !
8,9,10월 동안 대여 횟수가 5회 이상이기 때문에
대여 일수가 길든 짧든 횟수가 5회 이상만 찾으면 됩니다 !!


예시로 출력되는 건
따로 날짜에서 월만 추출한 MONTH와
CAR_ID, 자동차 id별 총 월 별 대여횟수 RECORDS 컬럼을 만들어주면 됩니다

사실 MONTH로 추출할 땐 DATE_FORMAT을 써도 될 줄 알았는데
그렇게하면 결과는 출력되지만 애초에 문자열로 추출이 돼서 정답처리가 안됩니다 !!

코드를 살펴보면

SELECT MONTH(START_DATE) MONTH, >> 달만 출력
       CAR_ID, 
       COUNT(*) RECORDS
FROM CAR_RENTAL_COMPANY_RENTAL_HISTORY 
WHERE START_DATE BETWEEN '2022-08-01' AND '2022-10-31'
>> 대여 시작일 기간 설정
AND CAR_ID IN 
(
SELECT CAR_ID
FROM CAR_RENTAL_COMPANY_RENTAL_HISTORY
WHERE START_DATE BETWEEN '2022-08-01' AND '2022-10-31'
GROUP BY CAR_ID
HAVING COUNT(CAR_ID) >= 5
>> 메인쿼리 안에 조건을 또 하나 더 들기 위해 서브쿼리 열기
   서브쿼리 안에 자동차 id가 5개 이상인 것만 출력해주는 조건 주기
)
GROUP BY 1, 2 >> 월과 자동차 id 범주 묶어주기
ORDER BY 1, 2 DESC

월 별 자동차 id별로 대여횟수 모두 출력 완👍
정답처리 완👍

사실 이문제는 이해하기까지 몇 시간이 걸렸습니다 🥲




♾️ 데이터 전처리 + 시각화 강의


새로운 세션이 시작되면서
또 새로운 프로그램을 세팅하게 됐는데요
세팅하느라 시간을 좀 먹었으나
다행히 몇 분만에 모두 세팅 완료했습니다 !!!!!

새로운 VS code에서
데이터 프레임 형태를 만들어보았습니다 !!

A,B는 컬럼으로 생각하시면 되고
그 안에 숫자와 문자로 값을 채워줬습니다
그리고 왼편에는 index라는 행을 만들어줬습니다

보기 편하네요 ㅎㅎ

아직 데이터 전처리는 강의와 실습을 왔다갔다 하면서
이해하느라 완강하는데 시간이 걸릴 거 같네요 ,,, 😅






야무진 주말 보내시고
저도 복습 좀 더 하고
다음주에 뵙겠습니다 ~~~ 🦾🦾

profile
걍 달려

0개의 댓글