[내일배움캠프] 데이터 트랙/본 캠프 38

[내일배움캠프] 33일 차 - SQL 코드카타, 통계 특강 2강

SQL 코드카타 문제 101Product Sales Analysis Ⅲ ☑ link 처음 답안SELECT product_id, MIN(year) AS first_year, quantity, priceFROM SalesGROUP BY product_id 최종 답안SELECT a.product_id, a.year AS first_year, a.quantity, a.priceFROM(SELECT product_id, year, RANK() OVER(PARTITION BY product_id ORDER BY year) AS ranking, quantity, priceFROM Sales) aWHERE a..

[내일배움캠프] 32일 차 - 데이터 전처리&시각화 6, 아티클 스터디

데이터 전처리 & 시각화 - 시각화 6 더보기 데이터 전처리 & 시각화 - 시각화 6 1. 데이터 시각화 Matplotlib.pyplot의 plot() 함수plot() 메서드 호출x, y인수에 x축, y축에 해당하는 열 지정import pandas as pdimport matplotlib.pyplot as plt# 샘플 데이터프레임 생성data = { 'A': [1, 2, 3, 4, 5], 'B': [5, 4, 3, 2, 1]}df = pd.DataFrame(data)# 선 그래프 그리기df.plot(x='A', y='B')plt.show() 스타일 설정하기color, linestyle, marker 등 Color(색상):문자열'blue', 'green', 'red', 'cyan', 'ma..

[내일배움캠프] 31일 차 - SQL 코드카타, 데이터 전처리&시각화 5, 통계 특강 1강

SQL 코드카타 문제 70그룹별 조건에 맞는 식당 목록 출력하기 ☑ link 최종 답안SELECT C.MEMBER_NAME, -- 6. 최종적으로 리뷰 수 최대인 사람의 3가지 정보만 출력 C.REVIEW_TEXT, C.REVIEW_DATEFROM ( SELECT A.MEMBER_NAME, -- 4. A, B JOIN 결과에 대해 윈도우 함수로 순위 구하기 A.REVIEW_TEXT, DATE_FORMAT(A.REVIEW_DATE, '%Y-%m-%d') AS REVIEW_DATE, RANK() OVER(ORDER BY B.COUNT_REVIEW DESC) AS RANKING FROM ( S..

[내일배움캠프] 30일 차 - SQL 코드카타, 데이터 전처리&시각화 4

SQL 코드카타 문제 66조회수가 가장 많은 중고거래 게시판의 첨부파일 조회하기 ☑ link 처음 답안 (통과! 하지만 비효율적)SELECT b.FILE_PATHFROM(SELECT a.FILE_PATH, a.VIEWS, MAX(a.VIEWS) OVER() AS MAX_VIEW -- MAX()FROM(SELECT CONCAT('/home/grep/src/', B.BOARD_ID, '/', F.FILE_ID, F.FILE_NAME, F.FILE_EXT)FILE_PATH, B.VIEWSFROM USED_GOODS_BOARD BJOIN USED_GOODS_FILE FON B.BOARD_ID = F.BOARD_IDORDER BY B.VIEWS DESC, F.FILE_ID D..

[내일배움캠프] 29일 차 - 데이터 전처리&시각화 3, 기초 팀 과제 발표, KPT 회고

데이터 전처리 & 시각화 Pandas - 3 더보기 데이터 전처리 & 시각화 강의 3주차 : Pandas 위주로 정리 - 3 5. 데이터 전처리 - 불리언 인덱싱 Boolean Indexing조건 이용하여 데이터프레임에서 특정 조건 만족하는 행 선택데이터 필터링하거나 원하는 조건 만족하는 행을 추출할 수 있음Boolean 값을 가지는 조건식을 사용하여 데이터프레임 인덱싱조건식에 따라 각 행이 True 또는 False로 평가되며, 이를 바탕으로 데이터프레임 필터링사용 방법 1: 단일 조건으로 필터링특정 열의 값을 기준으로 조건 설정해당 조건 만족하는 행 선택# 'age' 열에서 30세 이상인 행 필터링df[df['age'] >= 30] 사용 방법 2: 여러 조건으로 필터링여러 개의 조건 조합해 복합적 필..

[내일배움캠프] 주말 공부 - SQL 코드카타, Python 알고리즘 코드카타

SQL 코드카타 문제 60년, 월, 성별 별 상품 구매 회원 수 구하기 ☑ link 처음 답안SELECT a.YEAR, a.MONTH, a.GENDER, COUNT(*) USER -- COUNT(*)FROM(SELECT YEAR(O.SALES_DATE) YEAR, MONTH(O.SALES_DATE) MONTH, U.GENDER, U.USER_IDFROM USER_INFO UJOIN ONLINE_SALE OON U.USER_ID = O.USER_IDWHERE U.GENDER IS NOT NULL) aGROUP BY YEAR, MONTH, GENDER ORDER BY YEAR, MONTH, GENDER 최종 답안SELECT a.YEAR, ..

[내일배움캠프] 28일 차 - SQL 코드카타, 데이터 전처리&시각화 2

SQL 코드카타 문제 104Biggest Single Number ☑ link 처음 답안WITH single_num AS( SELECT COUNT(num) AS count_num FROM MyNumbers GROUP BY num)SELECT numFROM MyNumbersWHERE single_num.count_num = 1; 최종 답안SELECT MAX(CASE WHEN a.count_num = 1 THEN m.num ELSE NULL END) AS numFROM MyNumbers mLEFT JOIN ( SELECT num, COUNT(num) AS count_num FROM MyNumbers GROUP BY num HAVING count_nu..

[내일배움캠프] 27일 차 - 기초 분석 팀 과제, 퍼널 분석 공부

기초 분석 팀 과제 기초 분석 팀 과제 팀 노션에 정리하는 중 퍼널 분석 공부 1. 데이터5개월 간의 이커머스 데이터 → 월 단위 퍼널 분석 진행user_id: 사람 수 집계event column: 4가지 경우view(조회)cart(장바구니 담기)remove_from_cart(장바구니에서 제거)purchase(구매) 2. 퍼널 분석 이커머스 퍼널 예시방문 - 상품 조회 - 구매 시도 - 구매 - 재구매 데이터에서 알 수 있는 내용조회 - 장바구니 담기 - 장바구니에서 제거 - 구매 분석 1월 단위 각 단계별 전환율(조회 - 장바구니 담기 - 구매)1단계조회한 사용자 수: n명이 중 m%가 다음 단계인 장바구니 담기로 넘어감2단계장바구니 담은 사용자 수: n명이 중 m%가 다음 단계인 구매로 ..

[내일배움캠프] 26일차 - 기초 분석 팀 과제

기초 분석 팀 과제 이탈률 답안''' 분모: 전체 고객 수전체 기간 동안 회원 가입 내역(신규, 활성, 탈퇴)이 있는 고유 사용자 수 '''SELECT COUNT(DISTINCT customer_id)FROM customer_hm;'''분자: 90일 이상 미구매 OR 회원 탈퇴'''SELECT customer_idFROM customer_hmWHERE club_member_status = 'LEFT CLUB'UNIONSELECT customer_idFROM transactions_hmGROUP BY customer_idHAVING DATEDIFF('2019-12-31', DATE(MAX(t_dat))) >= 90;'''이탈률'''WITH total_churned_customer AS( SELEC..

[내일배움캠프] 25일 차 - 기초 분석 팀 과제

기초 분석 팀 과제 SQL 쿼리 이탈 고객 두 가지로 구분해서 집계 결과 보여주기 처음 답안-- OR = 전체 이탈 고객SELECT customer_idFROM customer_hmWHERE club_member_status = 'LEFT CLUB'UNIONSELECT customer_idFROM transactions_hmGROUP BY customer_idHAVING DATEDIFF('2019-12-31', DATE(MAX(t_dat))) >= 90;-- AND = 완전 이탈 고객SELECT c.customer_idFROM customer_hm cJOIN transactions_hm tON c.customer_id = t.customer_idWHERE c.club_member_status = 'L..