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

[내일배움캠프] 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..

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

SQL 코드카타 문제 93Project Employees 1 ☑ link 처음 답안SELECT P.project_id, ROUND(AVG(E.experience_years), 2) AS average_yearsFROM Project PJOIN Employee EON P.employee_id = E.employee_idGROUP BY P.project_id; 최종 답안 (✔️ 런타임 개선)SELECT DISTINCT P.project_id, ROUND(AVG(E.experience_years) OVER(PARTITION BY P.project_id), 2) AS average_yearsFROM Project PJOIN Employee EON P.employee_id = E.emp..

[내일배움캠프] 23일 차 - 파이썬 개인 과제 리뷰

파이썬 개인 과제 문제 1숫자 리스트의 평균 계산하기 최종 답안numbers = [10, 20, 30, 40, 50]def calculate_stock(numbers): avg = sum(numbers) / len(numbers) return avg 문제 2계산기 만들기함수명: simple_calculatornum1 , num2 : 숫자 입력 값operator : 문자열 형태의 사칙 연산자 (+, -, * , /)나누려는 숫자 num2 가 0인 경우 다음 문자를 반환 “Cannot divide by zero” 최종 답안def simple_calculator(num1, num2, operator): if operator == "+": return num1 + num2..

[내일배움캠프] 22일 차 - SQL 코드카타, Python 알고리즘 코드카타, 데이터 전처리&시각화 1, 아티클 스터디

SQL 코드카타 문제 90Confirmation RateThe confirmation rate of a user is the number of 'confirmed' messages divided by the total number of requested confirmation messages. The confirmation rate of a user that did not request any confirmation messages is 0. Round the confirmation rate to two decimal places.☑ link 최종 답안SELECT user_id, ROUND(confirmed_user / total, 2) AS confirmation_rateFROM ( ..

[내일배움캠프] 21일 차 - 파이썬 특강 5강, 파이썬 기초반 5강

파이썬 특강 5강 더보기 파이썬 특강 5회차: 임정 튜터님 1. 클래스 (Class)개발 분야에서 매우 중요데이터 분석 분야에서는 활용도가 조금 떨어짐그래도 알아야 한다1-1. 등장 배경매번 여러 함수를 함께 사용할 때, 통합해 관리할 필요성클래스(Class): 설계도인스턴스(Instance): 실체1-2. 클래스의 기능파이썬 용어집https://docs.python.org/ko/3.13/glossary.html클래스(Class)사용자 정의된 자료를 만들기 위한 설계도인스턴스(Instance)클래스로 부터 만들어진 실체속성(Attribute) ⊂ 변수인스턴스의 정보메소드(method) ⊂ 함수인스턴스에 영향을 주고 받는 기능보통 소괄호 () 로 끝남함수의 일종문법Class 클래스명: def __i..

[내일배움캠프] 20일 차 - Python 알고리즘 코드카타, 파이썬 특강 4강, 아티클 스터디

Python 알고리즘 코드카타 문제 39최대공약수와 최소공배수 두 수를 입력받아 두 수의 최대공약수와 최소공배수를 반환하는 함수, solution을 완성해 보세요. 배열의 맨 앞에 최대공약수, 그다음 최소공배수를 넣어 반환하면 됩니다. 예를 들어 두 수 3, 12의 최대공약수는 3, 최소공배수는 12이므로 solution(3, 12)는 [3, 12]를 반환해야 합니다. ☑ link 처음 답안 (틀림)def solution(n, m): answer = [] n = max(n, m) # 재할당 문제 m = min(n, m) x = (n * m) if n % m == 0: gcd = m else: while n % m != 0: ..

[내일배움캠프] 19일 차 - Python 알고리즘 코드카타, 파이썬 특강 3강, 파이썬 기초반 4강

Python 알고리즘 코드카타 문제 37행렬의 덧셈 행렬의 덧셈은 행과 열의 크기가 같은 두 행렬의 같은 행, 같은 열의 값을 서로 더한 결과가 됩니다. 2개의 행렬 arr1과 arr2를 입력받아, 행렬 덧셈의 결과를 반환하는 함수, solution을 완성해주세요. 처음 답안def solution(arr1, arr2): total = [] for i in range(len(arr1)): # 열 변수 nested_list = [] nested_list.append(arr1[i[0]] + arr2[i[0]]) # [i[0]] nested_list.append(arr1[i[1]] + arr2[i[1]]) # 행 상수 취급: 2개라고 가정 ..