| 일 | 월 | 화 | 수 | 목 | 금 | 토 |
|---|---|---|---|---|---|---|
| 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 |
- leetcode
- advent of sql
- Retention
- LEFTJOIN
- 누적합
- SQL
- regexp
- python
- 리텐션
- 데이터리안
- 서브쿼리
- SolveSQL
- 순위함수
- 신입 데이터분석가
- pandas
- 윈도우 함수
- row_number
- MYSQL
- 독서
- dense_rank
- 데이터분석
- 린분석
- funnel
- 프로그래머스
- Datarian
- rank
- 퍼널분석
- 윈도우함수
- 취준
- 그로스해킹
- Today
- Total
목록전체 글 (109)
데이터 분석
문제 Find all numbers that appear at least three times consecutively. 연속 3번 이상 등장하는 num을 조회하는 문제이다. Solution✔️ 쿼리 1 : 셀프조인을 이용하여 해결SELECT DISTINCT l1.num AS ConsecutiveNumsFROM Logs l1JOIN Logs l2 ON l2.id = l1.id + 1JOIN Logs l3 ON l3.id = l2.id + 1WHERE l1.num = l2.num AND l1.num = l3.num ✅ Logs 테이블을 3번 사용하여, id를 기준으로 각각 다음 행과 그다음 행을 조인✅ 현재 행과 다음 행의 num 값이 동일하고, 현재 행과 다다음 행의 num 값도 동일한 경우를 만족하면..
문제 Write a solution to find the first login date for each player. 각 플레이어별 최초 로그인 날짜를 조회하는 문제이다. Solution✔️ 쿼리 1 : GROUP BY를 이용하여 해결SELECT player_id , MIN(event_date) AS first_loginFROM ActivityGROUP BY player_id✔️ 쿼리 2 : MIN()을 활용한 윈도우 함수를 이용하여 해결SELECT DISTINCT player_id , MIN(event_date) OVER(PARTITION BY player_id) AS first_loginFROM Activity ✔️ 쿼리 3 : ROW_NUMBER()을 활용한 윈도우 함수를 이용하여..
레스토랑의 요일별 VIP 문제 조건1. 요일별로 가장 높은 금액의 결제 내역을 출력2. 쿼리 결과는 테이블에 있는 모든 컬럼을 포함 Solution ✔️ 쿼리 1 : 다중 컬럼 서브쿼리를 이용하여 해결SELECT * FROM tipsWHERE (day, total_bill) IN ( SELECT day , MAX(total_bill) FROM tips GROUP BY day) ✅ 서브쿼리로 요일별 가장 높은 금액을 계산한다✅ 메인쿼리 WHERE절에 다중 컬럼 조건으로 서브쿼리 결과와 만족하는 행만 반환한다 ✔️ 쿼리 2 : ROW_NUMBER(), 윈도우 함수를 이용하여 해결SELECT total_bill , tip , sex , smoker , day ..
다음날도 서울숲의 미세먼지 농도는 나쁨 😢✔️0217 복습 문제 조건1. 당일의 미세먼지 농도보다 바로 다음날의 미세먼지 농도가 더 안 좋은 날을 출력2. 쿼리 결과는 당일, 다음날, 당일의 미세먼지 농도, 다음날의 미세먼지 농도 컬럼을 포함 Solution ✔️ 쿼리 1 : 셀프조인을 이용하여 해결SELECT m1.measured_at AS today , m2.measured_at AS next_day , m1.pm10 , m2.pm10 AS next_pm10FROM measurements m1 JOIN measurements m2 ON m2.measured_at = DATE_ADD(m1.measured_at, INTERVAL 1 DAY)WHERE m1.pm10 ✅ JOIN ..
최근에 사용하는 영어 말하기 어플 스픽에서 흥미로운 리텐션 장치를 발견했다. 내가 학습을 놓치지 않도록 다양한 알림을 보내며 꾸준한 학습을 유도하려는 전략으로 보인다. ▶ 1일 불꽃 유지 알림하루가 끝나기 전, "오늘 아직 스피킹을 안 하셨네요"라는 알림을 보내며 1일 불꽃을 유지하도록 독려 ▶ 불꽃 만료 경고"불꽃이 몇 시간 후에 만료됩니다"라는 알림은 학습 목표를 의식적으로 떠올리게 하며, 즉각적인 행동 유도 ▶ 매일 알림 시간 알림학습을 습관화하도록 도와주는 "매일 알림 시간이에요"라는 메시지로 스스로 학습 시간을 관리할 수 있게 도움 ▶ 사용자 케어 알림"잘 계신가 확인차 연락드려요" 같은 메시지는 유저와의 감성적 연결을 강화하며, 서비스에 대한 애착을 갖게끔 유도 며칠 전 읽었던 데이터리안의 리..
문제 Write a solution to report the products that were only sold in the first quarter of 2019. That is, between 2019-01-01 and 2019-03-31 inclusive. 2019년 1분기에만 팔린 상품을 조회하는 문제이다. Solution✔️ 쿼리 1SELECT product_id , product_nameFROM ProductWHERE product_id IN ( SELECT product_id FROM Sales GROUP BY product_id HAVING MIN(sale_date) >= '2019-01-01' AND MAX(sale_date) ✅ WHERE절에 서브쿼리를 ..
문제 Write a solution to report the customer ids from the Customer table that bought all the products in the Product table. 모든 상품을 구매한 고객을 조회하는 문제이다. SolutionSELECT customer_idFROM CustomerGROUP BY customer_idHAVING COUNT(DISTINCT product_key) = (SELECT COUNT(product_key) FROM Product) ✅ 고객 id별 구매 이력이 있는 고유 상품 개수를 집계하여, 이것이 Product 테이블의 상품 개수와 동일한 경우를 만족하는 고객을 반환한다.
문제 Write a solution to find the people who have the most friends and the most friends number.The test cases are generated so that only one person has the most friends. 친구가 가장 많은 사람을 찾는 문제이다.단, 친구가 가장 많은 사람은 1명이다. Solution✔️ 쿼리 1WITH preprocessing AS (SELECT requester_id AS id , COUNT(*) AS numFROM RequestAcceptedGROUP BY requester_idUNION ALLSELECT accepter_id , COUNT(*) FROM RequestAcc..
문제 Write a solution to find managers with at least five direct reports. 5명 이상의 직속 부하 직원이 있는 관리자를 추출하는 문제이다. SolutuionSELECT nameFROM EmployeeWHERE id IN ( SELECT e.managerId FROM Employee e GROUP BY e.managerId HAVING COUNT(*) >= 5)
문제 Write a solution to report the fraction of players that logged in again on the day after the day they first logged in, rounded to 2 decimal places. In other words, you need to count the number of players that logged in for at least two consecutive days starting from their first login date, then divide that number by the total number of players. 전체 유저 중 최초 접속한 날을 기준으로 이틀 연속 접속한 플레이어의 비율을 계산하..