본문 바로가기

Today I Learned

231212 / 데이터 분석 4주차 및 예제 풀이

데이터 분석 2-3주차 내용을 복습해 준 뒤 4주차 강의를 수강했다. 이전 강의와 동일한 형식으로 데이터 분석을 진행했는데 복습을 통해 파이썬의 코드 구조를 이해한 상태라서 저번보다 수월하게 따라갈 수 있었다. 비슷한 코드 구조로 데이터 분석을 반복해서 진행하니까 조금씩 익숙해지고 있는 것 같다.

 

이번 강의에서는 실제 업무와 비슷한 상황에서의 데이터 분석을 진행했다. 상품의 구매 전환율을 높이기 위해 광고 매체별 효율을 분석하고, 패키지 상품 기획을 위한 고객군을 분석하여 결론을 도출해 보았다. 또 상품 결제율을 높이기 위해 할인율이 결제율에 영향을 미친다는 가설을 세우고 할인율 별 결제율을 분석하여 가설에 맞는 결론을 도출했다.

 

직접 가설을 생각해 보고 필요한 데이터를 가져와 분석을 통해 결론을 도출해 보니 데이터 분석을 어떻게 적용해야 할지 감을 잡을 수 있었다.

 

 

+ 데이터 분석 3주차 복습

- 목표(1) : 수강생들이 가장 많이 혹은 적게 듣는 시간과 요일 찾기 import pandas as pd sparta_data = pd.read_table('파일경로',sep=',') sparta_data.head() print(type(sparta_data['access_date'][1])) #데이터의 종류 확인 >>> a

seonah-til.tistory.com

 


SQL 예제 풀이

 

38. FOOD_ORDER 테이블에서 5월 1일을 기준으로 주문 ID, 제품 ID, 출고일자, 출고여부를 조회하는 SQL문을 작성해주세요. 출고여부는 5월 1일까지 '출고완료'로, 이후 날짜는 '출고 대기'로, 미정이면 '출고미정'으로 출력해주시고, 결과는 주문 ID를 기준으로 오름차순 정렬해주세요.

 

비교 연산자를 이용해 특정 날짜를 기준으로 이전과 이후 날짜 데이터를 조회할 수 있다.

select ORDER_ID, PRODUCT_ID, date_format(OUT_DATE, '%Y-%m-%d'),
          case when OUT_DATE<='2022-05-01'
                   then '출고완료'
                   when OUT_DATE is null
                   then '출고미정'
                   else '출고대기' end "출고여부"
from FOOD_ORDER
order by 1

 

 

42. CAR_RENTAL_COMPANY_CAR 체이블에서 자동차 종류가 'SUV'인 자동차들의 평균 일일 대여 요금을 출력하는 SQL문을 작성해주세요. 이때 평균 일일 대여 요금은 소수 첫 번째 자리에서 반올림하고, 컬럼명은 AVERAGE_FEE로 지정해주세요.

 

반올림 함수 ROUND를 이용해 평균 일일 대여 요금을 출력해 주었다.

* 반올림 - ROUND(값, 자릿수, 반올림여부) : 자릿수는 양수면 소수점 자릿수, 음수면 정수 자릿수를 의미

                                                                    반올림 여부는 생략 가능하며 음수를 입력할 경우 버림 처리

   올림 - CEILING(값)

   버림 - FLOOR(값)

select round(avg(DAILY_FEE)) AVERAGE_FEE
from CAR_RENTAL_COMPANY_CAR
where CAR_TYPE='SUV'

 

 

43. USED_GOODS_BOARD와 USED_GOODS_USER 테이블에서 완료된 중고 거래의 총금액이 70만원 이상인 사람의 회원 ID, 닉네임, 총거래금액을 조회하는 SQL문을 작성해주세요. 결과는 총거래금액을 기준으로 오름차순 정렬해주세요.

 

WHERE 조건문으로 완료된 중고 거래만 필터링하고 유저 별 총 거래 금액을 그룹화해 준 뒤

HAVING문으로 총 거래 금액이 70만 원 이상인 결과만 출력해 주었다.

select u.USER_ID, u.NICKNAME, sum(b.PRICE) TOTAL_SALES
from USED_GOODS_BOARD b left join USED_GOODS_USER u on b.WRITER_ID=u.USER_ID
where STATUS='DONE'
group by 1
having TOTAL_SALES >= 700000
order by 3