데이터 처리 도구 73

DAY 30 / [solvesql] 연습문제 3개 풀기

난이도풀기문제 이름난이도 32개- 미세먼지 수치의 계절간 차이- 친구 수 집계하기 난이도 51개- 세션 유지 시간을 10분으로 재정의하기 30일동안 solvesql에 있는 모든 연습문제를 다시 풀어보았다. 예전에 풀었던 문제지만 오랜만에 다시 마주하니 생각보다 어려웠던 것들도 있어서 공부가 많이 되었다. 복습을 잘하자. 화이팅

DAY 29 / [solvesql] 연습문제 3개 풀기

난이도풀기문제 이름난이도 31개- 전국 카페 주소 데이터 정제하기난이도 41개- 세 명이 서로 친구인 관계 찾기난이도 51개- 스테디셀러 작가 찾기 이전에 다 풀었던 문제들인데도 어려웠음. 조인을 많이 해야하는 경우나 연속인 데이터를 찾는 경우 어떤 순서대로 작성해야할지 미리 그려보면서 하기! [복습 노트]전국 카페 주소 데이터 정제하기https://limhm4907.tistory.com/259 DAY 9 / [solvesql] Advent of SQL 2024 2문제 (전국 카페 주소 데이터 정제하기, 미세먼지 수치의 계절간 차전국 카페 주소 데이터 정제하기SELECT SUBSTRING_INDEX(SUBSTRING_INDEX(address, ' ', 2), ' ', 1) AS sido , SUBSTR..

DAY 28 / [solvesql] 연습문제 3개 풀기

난이도풀기문제 이름난이도 31개- 멀티 플랫폼 게임 찾기 난이도 41개- 유량(Flow)와 저량(Stock) 난이도 51개- 일일 주문량의 중앙값 찾기 일일 주문량의 중앙값 찾기-- 2019년 1월 한 달 동안 일일 주문량의 중앙값을 구하는 쿼리-- 단, ‘C’로 시작하는 환불 거래는 계산에서 제외WITH base AS ( SELECT order_date , COUNT(DISTINCT order_id) AS cnt_orders FROM orders WHERE order_date BETWEEN '2019-01-01' AND '2019-01-31' AND order_id NOT LIKE 'C%' GROUP BY order_date)SELECT AVG(cnt_orders) AS med..

DAY 27 / [solvesql] 연습문제 3개 풀기

난이도풀기문제 이름난이도 31개- 폐쇄할 따릉이 정류소 찾기 2난이도 41개- 펭귄 날개와 몸무게의 상관 계수난이도 51개- 연속으로 5일 이상 미세먼지가 증가한 구간 찾기 연속으로 5일 이상 미세먼지가 증가한 구간 찾기작성 순서1. 윈도우 함수 LAG() 을 이용하여 전날의 pm10 농도를 가져오는 컬럼 생성한다.2. CASE 식을 이용하여 아래 두 경우에 해당하는 경우 날짜(measured_at)를 반환하고 그 외의 경우 NULL이 반환하여 "시작하는 날짜(start_date)"를 정의한다.-- (1) 전날의 pm10 농도가 NULL 인 경우(데이터가 처음 기록된 날짜)-- (2) 전날의 pm10 농도가 현재의 pm10 농도보다 크거나 같을 경우3. 윈도우 함수 MAX() 를 이용하여 2번에서 정의..

DAY 26 / [solvesql] 연습문제 3개 풀기

난이도풀기문제 이름난이도 31개- 서울숲 요일별 대기오염도 계산하기난이도 41개- 전력 소비량 이동 평균 구하기난이도 51개- 어떤 컨텐츠를 보고 유입되었을까? 전력 소비량 이동 평균 구하기SELECT DATE_ADD(measured_at, INTERVAL 10 MINUTE) AS end_at , ROUND(AVG(zone_quads) OVER(ORDER BY measured_at ROWS BETWEEN 5 PRECEDING AND CURRENT ROW), 2) AS zone_quads , ROUND(AVG(zone_smir) OVER(ORDER BY measured_at ROWS BETWEEN 5 PRECEDING AND CURRENT ROW), 2) AS zone_smir , ..

DAY 25 / [solvesql] 연습문제 1개 풀기 (세션 재정의하기)

난이도풀기문제 이름난이도 30개x난이도 40개x난이도 51개- 세션 재정의하기 세션 재정의하기WITH time_tab AS ( -- (1) 이전 이벤트 발생 시각을 표시하는 컬럼 생성 SELECT user_pseudo_id , LAG(event_timestamp_kst, 1) OVER(ORDER BY event_timestamp_kst) AS prev , event_timestamp_kst FROM ga WHERE user_pseudo_id = 'S3WDQCqLpK' ), check_session AS ( -- (2) 현재 이벤트와 이전 이벤트의 발생 시각 차이가 1시간 이상인 경우 표시하는 컬럼 생성 SELECT * , ..

DAY 24 / [solvesql] 연습문제 2개 풀기

난이도풀기문제 이름난이도 31개- 게임 평점 예측하기 1난이도 41개- 게임 개발사의 주력 플랫폼 찾기난이도 50개x 복습1. null을 처리하는 방법 (1) COALESCE(a, b, ... , x)- 왼쪽부터 확인하여 NULL이 아닌 첫 값을 반환- 예시: COALESCE(NULL, NULL, 'abc') → 'abc'왼쪽부터 확인했을 때 앞에 두개가 모두 NULL임으로 마지막 'abc'가 반환되었음. (2) IFNULL(a, x)- a가 NULL이면 x 반환- MySQL 에 존재하는 함수로, 다른 DBMS에는 존재하지 않을 수 있다. 따라서 NULL을 처리할 때는 COALESCE 사용 권장.- 예시:IFNULL(NULL, 0) → 0 [참고]https://limhm4907.tistory.com..