일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
1 | 2 | 3 | ||||
4 | 5 | 6 | 7 | 8 | 9 | 10 |
11 | 12 | 13 | 14 | 15 | 16 | 17 |
18 | 19 | 20 | 21 | 22 | 23 | 24 |
25 | 26 | 27 | 28 | 29 | 30 | 31 |
- 내일배움
- 중회귀모형
- Cluster
- 스파르타 코딩
- 내일배움캠프
- 스파르타
- 내일배움카드
- wil
- 오블완
- 파이썬 머신러닝 완벽가이드
- harkerrank
- 티스토리챌린지
- MySQL
- 프로젝트
- 실전 데이터 분석 프로젝트
- 웹 스크랩핑
- 파이썬 철저 입문
- TiL
- R
- hackerrank
- 회귀분석
- 미세먼지
- 텍스트 분석
- 파이썬 완벽 가이드
- 스파르타코딩
- 파이썬 머신러닝 완벽 가이드
- 파이썬 철저입문
- SQL
- 파이썬
- 프로그래머스
- Today
- Total
목록개발 (109)
OkBublewrap
Highest-Grossing Items문제1. 각 사용자 3일 이동 평균2. 소수점 두 자리로 반올림SELECT user_id, tweet_date, round(avg(tweet_count) over (partition by user_id order by tweet_date asc rows BETWEEN 2 PRECEDING AND current row), 2) as rolling_avg_3dFROM tweets풀이1️⃣ window 함수: user_id 그룹, 날짜 오름차순 정렬 2️⃣ window 프레임: 행 기준으로 2번째 전 부터 자기자신 평균 계산 Window 프레임rows: 행기준range: 값 기준groups: 그룹 기준
Sending vs. Opening Snaps문제1. 나이 그룹별 스냅을 보내고 열어본 시간 비율 구하기2. 비율은 소수점 두 자리 반올림3. 보내는데: send / (send + open)4. 여는데: open / (send + open)5. 비율 계산할 때 곱하기 100.0 풀이SELECT ab.age_bucket, round(sum(case when a1.activity_type = 'send' then a1.time_spent end) / sum(case when a1.activity_type in ('open', 'send') then a1.time_spent end) * 100.0, 2) as send_perc, round(sum(case when a1.activity_type = '..
Second Highest Salary문제1. 모든 직원 중 두 번째로 높은 급여2. 여러 명 직원이 중복 될 수 있음 중복되는 경우 급여를 한 번만 표시풀이select max(salary) as second_highest_salaryfrom employee where salary 1️⃣ where: 첫 번째 높은 급여2️⃣ max(salary): 두 번째 높은 급여
User's Third Transaction문제1. 각 사용자의 세 번째 거래2. 사용자ID, 지출 금액, 거래 날짜 풀이with temp_01 as ( SELECT *, row_number() over (partition by user_id order by transaction_date asc) as rn FROM transactions)select user_id , spend , transaction_datefrom temp_01where rn = 31️⃣ CTE: window 함수2️⃣ window 함수: user_id 별로 날짜 순으로 숫자 매기기3️⃣ where: 3번째 순서
Teams Power Users문제1. 2022년 8월2. 가장 많이 메세지를 보낸 상위 2명3. 그들이 보낸 총 메세지 수4. 메세지 수 내림차순 정렬풀이SELECT sender_id, count(message_id) as message_countFROM messageswhere EXTRACT(year from sent_date) = '2022'and Extract(month from sent_date) = '08'group by sender_idorder by message_count desclimit 21️⃣ where: 2022년, 8월2️⃣ group: sender_id 기준으로 그룹핑3️⃣ order by: 메세지 수가 많은 순으로 내림차순4️⃣ limit: 상위 2명
Average Post Hiatus (Part 1)문제1. 2021년 포스팅한 사용자2. 최소 두 번 포스팅3. 첫 포스트와 마지막 포스트의 날짜 차이 계산풀이SELECT user_id, max(post_date)::date - min(post_date)::date as days_betweenFROM postswhere EXTRACT(year from post_date) = '2021'group by user_idhaving count(user_id) >= 21️⃣ Where: 연도가 2021년도 - 조건12️⃣ group: user_id 기준으로 그룹 3️⃣ having: 최소 두 번 포스팅 - 조건2 4️⃣ 마지막 포스트(max) - 첫 포스트(min) 으로 날짜 차이 계산- mysql은 dated..
Laptop vs. Mobile Viewership문제1. 노트북 뷰어 수2. 모바일 뷰어 수 풀이SELECT COUNT(CASE WHEN device_type = 'laptop' THEN 1 END) AS laptop_reviews, COUNT(CASE WHEN device_type IN ('tablet', 'phone') THEN 1 END) AS mobile_viewsFROM viewership;1️⃣ case when: laptop, tablet, phone 각각 맞춰 count 다른 풀이#1 FILTERSELECT COUNT(*) FILTER (WHERE device_type = 'laptop') AS laptop_views, COUNT(*) FILTER (WHERE device..
Unfinished Parts문제 parts_assembly 테이블은 현재 생산 중인 모든 부품을 나타내며, 각 부품은 서로 다른 조립 단계에 있을 수 있습니다.미완성 부품은 finish_date 값이 NULL인 부품입니다.문제는 간단하므로 단순하고 직관적인 방법으로 접근해야 합니다 풀이SELECT part, assembly_stepFROM parts_assemblywhere finish_date is null;1️⃣ 조건1: finish_date가 null 값
Page With No Likes문제1. 좋아요 수가 0인 Facebook 페이지의 ID를 반환2. 페이지 ID 오름차순 정렬 풀이SELECT p1.page_idfrom pages p1 left join page_likes p2 on p1.page_id = p2.page_idwhere p2.user_id is nullorder by p1.page_id1️⃣ Left Join으로 page_id 결합page_likes가 없는 page는 null 값으로 됨2️⃣ page_likes에 없는 page_id 가져오기 - 조건 13️⃣ page의 page_id 기준으로 오름차순 정렬 다른 풀이#1 EXCEPTSELECT page_idFROM pagesEXCEPTSELECT page_idFROM page_like..
Data Science Skills문제1. Python, Tableau, PostgresSQL 기술을 보유한 후보자2. ID 기준 오름차순 정렬 풀이select candidate_idfrom candidateswhere skill in ('Python','Tableau','PostgreSQL')group by candidate_idhaving count(*) = 3order by candidate_id1️⃣ 해당 기술 들어간 행만 - 조건12️⃣ candidate_id 그룹화 후 세가지 일 경우 - 조건23️⃣ candidate_id 기준 오름차순 정렬