KATA#17

codataffee·2024년 4월 27일
0

CODEKATA

목록 보기
17/114
post-thumbnail

WHAT IS KATA?

KATA는 기술과 기술 향상에 초점을 맞춘 코드 챌린지입니다.
일부는 프로그래밍 기본 사항을 교육하는 반면 다른 일부는 복잡한 문제 해결에 중점을 둡니다.

이 용어는 The Pragmatic Programmer 라는 책의 공동 저자인 Dave Thomas 가
무술에서 일본의 카타 개념을 인정하면서 처음 만들어졌습니다.
Dave의 개념 버전은 코드 카타를 프로그래머가
연습과 반복을 통해 기술을 연마하는 데 도움이 되는 프로그래밍 연습으로 정의합니다.


- SQL


✔️ 문제 #1: 자동차 대여 기록에서 대여중 / 대여 가능 여부 구분하기

✔️ 제출 쿼리

✔️ 쿼리 분석

SELECT CAR_ID,
       MAX(CASE WHEN '2022-10-16' 
       BETWEEN START_DATE AND END_DATE THEN '대여중'
       ELSE '대여 가능' END) AVAILABILITY
FROM CAR_RENTAL_COMPANY_RENTAL_HISTORY
GROUP BY CAR_ID
ORDER BY CAR_ID DESC

#시작날짜와 끝날짜 사이에 '2022-10-16' 이 있으면 대여중,
없으면 대여 가능 출력하는 CASE 구문인데,
MAX 함수를 넣지 않으면 통과가 되지 않았다.
그룹과 집계함수 관련 내용 더 공부해보기!


✔️ 문제 #2: 년, 월, 성별 별 상품 구매 회원 수 구하기


✔️ 제출 쿼리

✔️ 쿼리 분석

SELECT SUBSTR(OS.SALES_DATE, 1, 4) YEAR,
       SUBSTR(OS.SALES_DATE, 6, 2) MONTH,
       UI.GENDER,
       COUNT (DISTINCT UI.USER_ID) USERS
FROM USER_INFO UI INNER JOIN ONLINE_SALE OS
     ON UI.USER_ID = OS.USER_ID AND UI.GENDER IS NOT NULL
GROUP BY SUBSTR(OS.SALES_DATE, 1, 4), 
         SUBSTR(OS.SALES_DATE, 6, 2),
         UI.GENDER
ORDER BY 1, 2, 3

# 더 쉬운 쿼리가 있을 것 같은데..
DATE 포맷 관련 좀 더 알아보기!


✔️ 문제 #3: 서울에 위치한 식당 목록 출력하기


✔️ 제출 쿼리

✔️ 쿼리 분석

SELECT RI.REST_ID,
       RI.REST_NAME,
       RI.FOOD_TYPE,
       RI.FAVORITES,
       RI.ADDRESS,
       ROUND(AVG(RR.REVIEW_SCORE),2) SCORE
FROM REST_INFO RI LEFT JOIN REST_REVIEW RR
     ON RI.REST_ID = RR.REST_ID
WHERE RI.ADDRESS LIKE '서울%' AND RR.REVIEW_SCORE IS NOT NULL
GROUP BY RI.REST_ID
ORDER BY 6 DESC, 4 DESC

#RR.REVIEW_SCORE IS NOT NULL.. 
평균을 집계할 때 자동으로 NULL값을 제외하지 않나..? 
NULL값 제외 조건을 달지 않으면 통과가 안됐었다.
집계함수 관련 내용 확인해볼 것.


profile
커피 좋아하는 데이터 꿈나무

0개의 댓글

관련 채용 정보