SQL 15

[SQL/solvesql LV3] 초기 사용자의 친구 관계 찾기

https://solvesql.com/problems/friendship-between-early-users/https://solvesql.com/problems/friendship-between-early-users/solvesql.com Facebook 소셜 네트워크 데이터베이스에는 사용자의 정보와 사용자 사이의 친구 관계가 저장되어 있습니다.edges 테이블의 각 행은 두 사용자(user_a_id, user_b_id)가 서로 친구 관계라는 의미입니다. 이 데이터베이스에서 사용자 ID는 auto increment 정수로 생성되기 때문에, ID가 낮을수록 더 일찍 가입한 사용자라고 볼 수 있습니다. 따라서 친구 관계인 두 사용자 ID의 합(user_a_id + user_b_id)이 작을수록 더 초창기에..

SQL 2025.12.22

[SQL/solvesql LV2] 이틀 연속 미세먼지가 나빠진 날

https://solvesql.com/problems/bad-finddust-days-in-a-row/https://solvesql.com/problems/bad-finddust-days-in-a-row/solvesql.com 서울숲 일별 평균 대기오염도 데이터베이스에는 2022년 동안 매일 기록된 미세먼지정보가 저장되어 있습니다.우리가 궁금한 건 단순히 미세먼지 농도가 높은 날이 아니라, 이틀 연속 미세먼지 수치가 나빠져서, 세 번째 날에 30㎍/㎥ 이상이 된 날을 찾아내는 것입니다. 예를 들어,1월 3일: 28㎍/㎥1월 4일: 37㎍/㎥1월 5일: 52㎍/㎥이라면,3→4, 4→5 이틀 연속 미세먼지가 상승했고, 1월 5일 수치가 30 이상이므로 1월 5일이 우리가 찾는 경고 일자(date_alert)..

SQL 2025.12.07

[SQL/solvesql LV4] 세 명이 서로 친구인 관계 찾기

https://solvesql.com/problems/friend-group-of-3/ https://solvesql.com/problems/friend-group-of-3/ solvesql.com 🎯 문제 상황소셜 네트워크 데이터를 분석하는 과정에서, 세 명의 사용자가 서로 친구 관계를 맺고 있는 "삼각형 구조"를 찾아야 합니다. 주어진 edges 테이블에는 (A, B) 형태의 친구 관계만 저장되어 있습니다. 우리의 목표는:두 단계를 거쳐 (A, B, C) 형태의 친구 관계를 찾고,최종적으로 (A, C) 관계까지 확인하여 실제 삼각관계를 필터링하는 것입니다.특정 사용자(예: 3820)가 포함된 삼각형만 출력합니다. 🎯 문제 해결 흐름Step 1: A-B-C 관계 찾기edges 테이블을 두 번 조인하..

SQL 2025.03.20

[SQL/프로그래머스 LV3] 멀티 플랫폼 게임 찾기

https://solvesql.com/problems/multiplatform-games/ https://solvesql.com/problems/multiplatform-games/ solvesql.com 🎯 문제 상황게임 데이터에서 2012년 이후 출시된 게임 중, 두 개 이상의 서로 다른 제조사(Sony, Nintendo, Microsoft)에서 출시된 게임을 찾는 문제입니다. 즉, 멀티 플랫폼 게임을 확인하고, 특정 게임이 다양한 제조사의 기기에서 출시되었는지 분석해야 합니다.  🎯문제 접근제조사 매핑 (CASE 문 활용)platforms 테이블의 name을 활용해 플랫폼별 제조사(Sony, Nintendo, Microsoft)를 분류합니다.이 결과를 WITH plat AS (...))으로 저장..

SQL 2025.02.05

[SQL/프로그래머스 LV3] 대여 횟수가 많은 자동차들의 월별 대여 횟수 구하기

https://school.programmers.co.kr/learn/courses/30/lessons/151139 프로그래머스SW개발자를 위한 평가, 교육, 채용까지 Total Solution을 제공하는 개발자 성장을 위한 베이스캠프programmers.co.kr문제 상황:월별로 대여 횟수가 5회 이상인 차량만 필터링하고, 이러한 차량의 월별 대여 횟수를 계산. 문제 접근:단계 1: 총 대여 횟수가 5회 이상인 차량 필터링먼저, CAR_ID를 기준으로 그룹화하여 차량별 총 대여 횟수를 계산합니다. 이 중 대여 횟수가 5회 이상인 차량만 추출합니다 단계 2: 조건을 만족하는 차량과 원본 데이터를 결합총 대여 횟수가 5회 이상인 차량만 남긴 서브쿼리 결과를 원본 테이블과 JOIN합니다. 이를 통해 조건에 ..

SQL 2025.01.17

[SQL/프로그래머스 LV.3] 헤비 유저가 소유한 장소

https://school.programmers.co.kr/learn/courses/30/lessons/77487 프로그래머스SW개발자를 위한 평가, 교육, 채용까지 Total Solution을 제공하는 개발자 성장을 위한 베이스캠프programmers.co.kr SQL에서 그룹화와 서브쿼리를 활용한 데이터 필터링: 사례 분석1. 문제 상황: 데이터 필터링 오류SQL에서 GROUP BY와 HAVING을 활용해 특정 조건에 맞는 데이터를 추출하려고 했으나, 작성한 쿼리가 제대로 작동하지 않았습니다. 아래는 처음 작성한 쿼리입니다: SELECT *FROM ( SELECT * FROM PLACES GROUP BY HOST_ID HAVING COUNT(HOST_ID) >= 2)SELECT ..

SQL 2025.01.16

[SQL/solvesql] LV3. 쇼핑몰의 일일 매출액과 ARPPU

https://solvesql.com/problems/daily-arppu/ https://solvesql.com/problems/daily-arppu/ solvesql.com 이번 포스팅에서는 브라질 Olist 이커머스 데이터를 활용하여 2018년 1월 1일 이후의 일별 매출 데이터를 SQL로 분석하는 방법을 소개합니다. Olist 데이터는 olist_orders_dataset과 olist_order_payments_dataset 두 테이블로 구성되어 있습니다. 이 두 테이블을 조인하여 일별 결제 고객 수, 매출액, 그리고 ARPPU(Average Revenue Per Paying User)를 계산해 보겠습니다. 1. 분석 목표분석 결과는 다음과 같은 네 가지 컬럼을 포함해야 합니다:dt: 매출 날짜 ..

SQL 2025.01.16

[SQL/solvesql] LV3. 지역별 주문의 특징

https://solvesql.com/problems/characteristics-of-orders/ https://solvesql.com/problems/characteristics-of-orders/ solvesql.com1. 문제 상황데이터를 분석하거나 집계할 때 중복된 데이터는 잘못된 결과를 초래할 수 있습니다. 특히, 특정 열(region, category)의 집계 값이 중복된 order_id로 인해 부정확하게 계산될 경우, 이를 해결하기 위한 방법이 필요합니다. 2. 요구사항주어진 데이터에서 다음과 같은 조건으로 데이터를 집계해야 합니다:중복 데이터 처리:region, category, order_id 조합이 중복된 경우 이를 제거해야 합니다.카테고리별 집계:각 지역(region)별로 Furn..

SQL 2025.01.09

[SQL/프로그래머스] LV3. 배송 예정일 예측 성공과 실패

https://solvesql.com/problems/estimated-delivery-date/ https://solvesql.com/problems/estimated-delivery-date/ solvesql.com 🚀 1. 문제 상황전자상거래 플랫폼에서 주문 데이터를 분석하여 날짜별 배송 성공 및 실패 건수를 확인하려고 합니다. 구체적으로는 다음과 같은 기준으로 데이터를 집계하려고 합니다:배송 실패(Fail): 실제 배송일(order_delivered_customer_date)이 예상 배송일(order_estimated_delivery_date)보다 늦은 경우배송 성공(Success): 실제 배송일이 예상 배송일과 같거나 더 빠른 경우또한, 2017년 1월에 발생한 주문 데이터만 분석하려고 합니다..

SQL 2024.12.21

[SQL/프로그래머스] LV2. 상품 별 오프라인 매출 구하기

https://school.programmers.co.kr/learn/courses/30/lessons/131533 프로그래머스SW개발자를 위한 평가, 교육, 채용까지 Total Solution을 제공하는 개발자 성장을 위한 베이스캠프programmers.co.kr 데이터 분석에서 테이블을 조인하고, 그룹화하여 매출 데이터를 집계하는 것은 매우 흔한 작업입니다. 이 포스트에서는 PRODUCT 테이블과 OFFLINE_SALE 테이블을 사용해 상품코드 별 매출액(판매가 × 판매량) 합계를 구하고, 요구 조건에 맞게 정렬하는 SQL 쿼리를 작성하는 과정을 단계별로 설명하겠습니다. 문제 PRODUCT 테이블과 OFFLINE_SALE 테이블에서 상품코드 별 매출액(판매가 * 판매량) 합계를 출력하는 SQL문을 작..

SQL 2024.12.05