내일배움캠프_데이터분석_2기/TIL

[TIL] camp_day30_240528

단ee 2024. 5. 28. 21:41

앞으로 4주 동안 함께 학습하고 프로젝트를 진행할 팀원들을 만났다. 이번 프로젝트도 무사히 끝나길!
이번 주차부터는 통계학 기초와 머신러닝에 대해 학습할 예정.

학습 내용


  1. 약 4주 동안 붙잡고 있던 문제를 해결했다(SQL)

    • 문제 : 프로그래머스_자동차 대여기록 별 대여금액 구하기
    • 풀이 과정 정리
      1. where 절에 자동차 종류 = '트럭' 조건 걸어서 필터링
      2. Rental_History 테이블에는 자동차 종류와 일일요금이 없으므로 Car 테이블 조인
      3. 시작일과 종료일 사이 일수를 구해서(DATEDIFF +1) Discount Plan 테이블과 '대여기간 조건' 을 같은 조건으로 출력 & 조인
      4. 할인율을 적용하여 대여 기간의 대여금액 구하기(컬럼명 : FEE)
      5. 정렬 조건 적용하기
    • 실패했던 쿼리들. 그동안 왜 틀렸는가
      1. 대여기간이 7일 미만인 행에는 할인율이 없어서(NULL) 계산이 되지 않음 => ISNULL() 함수 사용
      2. CTE 사용하는 법을 잘 모를 때 테이블끼리 조인하지 않고 그냥 쓰려다가 오류가 출력됨
      3. 대여기간 조건을 날짜로 치환해서 계산하려고 하다보니 값이 꼬임.
    • 최종 정답 쿼리
        SQL
        SELECT 
            HISTORY_ID
            ,FLOOR(IF(ISNULL(d_type),1,1-(DISCOUNT_RATE/100))*DAILY_FEE*date_num) AS FEE
        FROM
            (
            SELECT
                HISTORY_ID ,DAILY_FEE
                ,DATEDIFF(END_DATE,START_DATE)+1 AS date_num
                ,CASE 
                    WHEN DATEDIFF(END_DATE,START_DATE)+1 >= 90 THEN '90일 이상'
                    WHEN DATEDIFF(END_DATE,START_DATE)+1 >= 30 THEN '30일 이상'
                    WHEN DATEDIFF(END_DATE,START_DATE)+1 >= 7 THEN '7일 이상' 
                    ELSE NULL END AS d_type
            FROM
                CAR_RENTAL_COMPANY_RENTAL_HISTORY AS h
            INNER JOIN 
                CAR_RENTAL_COMPANY_CAR AS c
                ON h.CAR_ID = c.CAR_ID
            WHERE CAR_TYPE = '트럭'
            ) AS hstr
        LEFT JOIN
            (
            SELECT
                DURATION_TYPE
                ,DISCOUNT_RATE
            FROM
                CAR_RENTAL_COMPANY_DISCOUNT_PLAN
            WHERE CAR_TYPE = '트럭'
            ) AS p
            ON hstr.d_type = p.DURATION_TYPE
        ORDER BY FEE DESC, HISTORY_ID DESC
  2. print문에 대해 알아보자(Python)

    1. print() 함수 : 출력문에 사용하는 함수

       Python
       print("Hello World")
      • 아래와 같은 옵션을 부여할 수 있다.
        1. sep= : 구분자를 사용하여 출력할 수 있다.
        2. end= : 뒤에 나오는 print 문에 이어서 출력이 가능하다.
      • ESCAPE 문자
        1. \n : 줄 바꾸기
        2. \t : 탭
        3. \b : 백스페이스
  3. 퍼널 분석

    • 퍼널(Funnel) : 소비자의 행동을 기업 관점에서 재구성한 것으로, 고객이 유입되어 전환에 이르는 단계를 수치로 확인하고 분석하는 방법론
    • 마케팅 퍼널, AARRR 퍼널 등 다양한 퍼널이 존재
    • 다양한 퍼널을 시중에 나와있는 툴로 생성하여 분석하는 것은 쉬운 일이지만,
      각 단계를 정의하고 단계를 수치화하는 핵심지표를 설정하는 것은 어려우며 이것이 곧 데이터 분석가의 핵심 역량 중 하나가 된다.

고찰 & 기타


  • 깃헙을 써보려고 했는데, 레포 파고 새로운 커밋을 어떻게 하는지 모르겠다. 더 찾아봐야 할 듯.
  • 통계학 관련 이론 학습을 해야 하는데... 강의가 잘 안 들어온다. 내용이 조금 산만하기도 하고, 집중이 잘 되지 않는다.

'내일배움캠프_데이터분석_2기 > TIL' 카테고리의 다른 글

[TIL] camp_day32_240530  (0) 2024.05.30
[TIL] camp_day31_240529  (0) 2024.05.29
[TIL] camp_day29_240527  (0) 2024.05.28
[TIL] camp_day28_240524  (0) 2024.05.24
[TIL] camp_day27_240523  (0) 2024.05.24