본문 바로가기
  • plotly로 바로쓰는 동적시각화 in R & 파이썬
EPL과 유튜브 데이터로 배우는 DuckDB

SQL 효율을 높이는 DuckDB 전용 SQL - Part 4

by 아참형인간 2026. 5. 6.

https://2stndard.tistory.com/notice/203

 

[발간예정][EPL과 유튜브로 배우는 DuckDB] 실습 코드와 데이터

EPL과 유튜브 데이터로 배우는 DuckDB에서 사용되는 실습 데이터와 코드를 제공합니다. EPL_DATA&samplefile.zip : 책에서 사용하는 영국 프리미어리그 데이터 셋과 샘플로 사용하는 파일espn.duckdb.zip : 책

2stndard.tistory.com

[DuckDB] 데이터 분석 생산성을 높여주는 SQL 핵심 문법 정리


최근 데이터 분석 및 OLAP 엔진으로 각광받고 있는 DuckDB는 기존 표준 SQL의 번거로움을 해결해주는 강력한 'Syntactic Sugar(편의 문법)'를 제공합니다.


1. PIVOT ON and USING

  • DuckDB: PIVOT 테이블이름 ON 열이름 USING 집계함수
  • 용도: ON에 지정된 열의 고유값을 열로 사용하는 피보팅
PIVOT cities
ON year
USING sum(population);

2. PIVOT ON, USING, and GROUP BY

  • DuckDB: PIVOT 테이블이름 ON 열이름 USING 집계함수 GROUP BY 열
  • 용도: PIVOT ON ... USING 집계함수의 행에 대한 그룹화.
PIVOT cities
ON year
USING sum(population)
GROUP BY country;

3. 필터를 사용하는 PIVOT

  • DuckDB: `PIVOT 테이블이름 ON 열이름 IN (열리스트) USING 집계함수1
  • 용도: 피보팅되어 생성되는 열의 리스트를 설정하여 열 개수를 제한.
PIVOT cities
ON year IN (2000, 2010)
USING sum(population)
GROUP BY country;

4. 다중 열의 피보팅

  • DuckDB: PIVOT 테이블이름 ON 열이름1,열이름2,... USING 집계함수
  • 용도: 여러 열을 각각 별도의 열로 피보팅하는데 열의 고유한 값의 모든 조합 열을 생성.
PIVOT cities
ON country, name
USING sum(population);

PIVOT cities
ON country || '_' || name
USING sum(population);

5. 다중 집계함수의 피보팅

  • DuckDB: PIVOT 테이블이름 ON 열이름. USING 집계함수1, 집계함수2, ...
  • 용도: USING 절에 여러개 집계함수 사용, 뒤에 밑줄(_)이 붙어 표현됨
PIVOT cities
ON year
USING sum(population) AS total, max(population) AS max
GROUP BY country;

댓글