본문 바로가기

SQL32

[4] 게임 개발사의 주력 플랫폼 찾기 Advent of SQL 2024 > 게임 개발사의 주력 플랫폼 찾기Video Game Sales with Ratings 데이터베이스는 1980년부터 2016년까지 출시된 게임들의 다양한 정보가 포함되어 있습니다. 포함된 정보에는 게임 개발사 정보와 각 게임의 플랫폼, 게임의 판매량 정보도 있습니다. 게임 분야에는 많은 플랫폼이 있기 때문에 하나의 개발사가 모든 플랫폼에 게임을 출시하는 것은 생각보다 어려운 일 입니다. 각 게임 개발사는 주력 플랫폼을 정해두고 해당 플랫폼 위주로 게임을 출시합니다. 따라서, 개발사마다 주력 플랫폼은 보통 판매량이 가장 많은 플랫폼으로 생각할 수 있습니다.games 테이블, companies 테이블, platforms 테이블을 조회해 각 게임 개발사의 주력 플랫폼과 해당 .. 2025. 4. 15.
[4] 전력 소비량 이동 평균 구하기 Advent of SQL 2024 > 전력 소비량 이동 평균 구하기2017년 1월 1일 0시부터 2017년 2월 1일 0시까지 10분 단위로 3개 발전소 전력 소비량의 1시간 범위 단순 이동 평균을 계산하는 쿼리를 작성해주세요. 평균을 내기 위한 데이터의 범위가 1시간보다 작은 경우 해당 범위에 포함되는 측정 값만 평균 계산에 포함시켜주세요. 쿼리 결과에는 아래 컬럼이 포함되어 있어야 하고, 이동 평균 값은 소수점 셋째 자리에서 반올림 해 둘째 자리까지 표시되어야 합니다. -- 2017년 1월 1일 0시부터 2017년 2월 1일 0시까지-- 10분 단위-- 3개 발전소 -- 전력 소비량의 1시간 범위 단순 이동 평균-- 평균을 내기 위한 데이터의 범위가 1시간보다 작은 경우 -- 해당 범위에 포함되는.. 2025. 4. 15.
월별 리텐션 분석 (DuckDB : SQL) DuckDB + Pandas 연동필요한 라이브러리 설치pip install duckdb pandas  순서설명1pd.read_parquet()로 DataFrame 불러오기2duckdb.connect()로 인메모리 DB 연결3.register("테이블명", df)로 테이블처럼 등록4con.execute(...).df()로 SQL 쿼리 실행 후 DataFrame으로 반환# Parquet 파일 로드df_view = pd.read_parquet('view.parquet')df_visit = pd.read_parquet('visit.parquet')# DuckDB 인스턴스 생성 (메모리 DB)con = duckdb.connect(database=':memory:')# 데이터프레임을 DuckDB에 테이블처럼 등록c.. 2025. 4. 4.
SQL : GROUP_CONCAT 각 속성값에 대한 상위 카테고리가 있고, 속성값은 여러 상위 카테고리에 중복으로 들어갈 수 있음.중복된 속성값을 확인하고, 해당되는 상위 카테고리가 어떤 것인지 파악하기 위한 쿼리를 작성하며 GROUP_CONCAT을 활용 → GROUP_CONCAT을 통해 그룹핑된 결과를 하나의 결과값으로 표현할 수 있다.  1. GROUP BY로 속성 값을 그룹화2. HAVING 으로 2개 이상의 속성 값이면 출력 COUNT(DISTINCT 속성) > 1 3. GROUP_CONCAT으로 속성 값을 포함하고 있는 상위 카테고리 목록을 나열 SELECT attribute AS "속성값", COUNT(DISTINCT category) AS "상위 카테고리 개수", GROUP_CONCAT(DISTINCT cat.. 2024. 10. 2.