관계형 구조
테이블
Table
뜻
행과 이름이 있는 열로 구성된 관계형 데이터 구조입니다.
언제 쓰나
엔터티, 사건, 기준 정보, 분석 결과를 저장할 때 사용합니다.
활용 예시
analytics.orders(order_id, customer_id, amount, ordered_at)데이터 분석
분석 SQL에서 사용하는 관계형 구조, 키, 필터, 조인, 그룹화, 집계, CTE, 윈도우 함수 용어를 설명합니다.
12 개 용어
관계형 구조
Table
행과 이름이 있는 열로 구성된 관계형 데이터 구조입니다.
엔터티, 사건, 기준 정보, 분석 결과를 저장할 때 사용합니다.
analytics.orders(order_id, customer_id, amount, ordered_at)관계형 구조
Row and column
행은 하나의 레코드, 열은 자료형이 정의된 하나의 속성을 나타냅니다.
쿼리하기 전에 각 행의 단위와 각 열의 의미를 확인합니다.
One row = one order; amount = gross order value.관계형 구조
Primary key
테이블의 각 행을 고유하게 식별하는 열 또는 열의 조합입니다.
고유성을 보장하고 관련 레코드를 안정적으로 연결할 때 사용합니다.
PRIMARY KEY (order_id)관계형 구조
Foreign key
다른 테이블의 키를 참조하는 열 또는 열 조합입니다.
테이블 관계를 표현하고 참조 무결성을 보호할 때 사용합니다.
orders.customer_id REFERENCES customers.customer_id조회
SELECT
데이터 원천에서 열이나 계산식을 조회하는 SQL 문입니다.
분석 의도를 명확히 하도록 필요한 열만 지정합니다.
SELECT order_id, amount FROM orders;조회
WHERE
그룹화와 집계 전에 입력 행을 필터링하는 절입니다.
날짜, 상태, 지역, 품질 같은 행 단위 조건에 사용합니다.
WHERE ordered_at >= DATE '2026-01-01'조회
JOIN
일치 조건을 이용해 여러 테이블의 행을 결합하는 연산입니다.
일치하지 않는 행을 보존할지에 따라 내부·외부 조인을 선택합니다.
의도치 않은 행 증가를 막기 위해 조인 전에 키의 고유성을 확인합니다.
FROM orders o LEFT JOIN customers c ON c.customer_id = o.customer_id집계
GROUP BY
선택한 값이 같은 행을 묶어 집계할 수 있게 하는 절입니다.
날짜, 제품, 지역 같은 차원별로 데이터를 요약할 때 사용합니다.
GROUP BY order_date, region집계
Aggregate function
여러 입력 행에서 하나의 요약 값을 계산하는 함수입니다.
지표 정의에 따라 COUNT, SUM, AVG, MIN, MAX를 사용합니다.
SELECT region, SUM(amount) AS revenue FROM orders GROUP BY region;집계
HAVING
집계가 계산된 뒤 그룹을 필터링하는 절입니다.
원본 행이 아니라 집계 결과에 조건을 적용할 때 사용합니다.
HAVING COUNT(*) >= 100고급 분석
Common table expression (CTE)
WITH로 정의하고 큰 쿼리 안에서 사용하는 이름 있는 임시 쿼리 결과입니다.
여러 단계의 변환을 구성하고 가독성을 높일 때 사용합니다.
WITH monthly_sales AS (...) SELECT * FROM monthly_sales;고급 분석
Window function
개별 결과 행을 유지하면서 관련 행의 범위에 걸쳐 계산하는 함수입니다.
순위, 누적합, 이동 평균, 이전 기간 비교에 사용합니다.
SUM(amount) OVER (PARTITION BY customer_id ORDER BY ordered_at)