검색
tee / insights
LEARNING / SQLHOME
DATA → QUERY → RESULT

SQL 문법 맵

데이터가 어떻게 바뀌는지로 SQL을 이해하세요. Snowflake / BigQuery를 전환하며 같은 개념을 같은 순서로 확인합니다.

SQL 방언

SQL 전체 흐름

조회·분석을 위한 기본 SELECT 문법입니다. 목적이나 구문명을 찾고 같은 입력의 결과를 비교하세요.

입력 만들기

데이터 출처

FROM은 처리할 테이블이나 결과를 지정한다.

이름 붙이기 / 중첩하기

WITH와 FROM의 하위 쿼리는 같은 중간 결과를 표현할 수 있다.

가로 결합: 어떤 행을 남길까?

일치 / 왼쪽 전체 / 양쪽 전체 / 모든 조합.

결합 조건 / 결합 후 필터

LEFT JOIN에서는 조건 위치에 따라 남는 행이 달라진다.

중첩 값을 행으로

복합 값의 요소를 행으로 펼친다.

행 필터링

언제 필터링할까?

WHERE는 집계 전, HAVING은 집계 후, QUALIFY는 window 후.

행 집계

N행 → 1값

무엇을 세고 어떤 요약값을 구할지 선택한다.

집계 단위 / 중복 제거

GROUP BY는 집계 단위를 만들고 DISTINCT는 선택한 출력 행의 중복을 없앤다.

행 수를 유지하며 분석

줄이기 / 각 행에 붙이기

Aggregate: N행→그룹당 1행. Window: N행→N행.

순위: 동점 처리

연번 / 동순위와 건너뛰기 / 동순위와 연속 순위.

응용: 행 위치 / 값 범위

ROWS는 행 위치, RANGE는 정렬 값으로 범위를 정한다.

값 만들기

비교 / 조건 결합

비교는 TRUE / FALSE / NULL을 반환하고 논리 연산이 결합한다.

결측 판정 / 채우기

NULL과의 등호 비교는 모름이다. IS NULL로 판정한다.

일반 분기 / 두 갈래 단축형

CASE는 여러 조건, IF / IFF는 두 결과를 간결하게 쓴다.

일반 변환 / 안전한 변환

변환 불가 값: CAST는 오류, 안전 버전은 NULL.

부호 제거 / 반올림

ABS는 절댓값, ROUND는 지정 자릿수로 반올림.

변환 / 추출 / 연결

같은 문자열에 네 가지 연산을 적용한다.

현재 / 더하기 / 차이 / 절삭

기능은 같고 인수 순서와 단위 문법이 다르다.

중첩 값 / SQL 문자열

둘 다 7로 보여도 자료형이 다르다.

집합 조합

세로 결합: 중복은?

같은 A·B로 중복 유지 / 제거 / 공통 / 왼쪽만 비교한다.

응용: 열 이름으로 맞추기

열 위치가 달라도 같은 이름끼리 맞춘다.

결과 정리

결과 정리

중복 제거 → 정렬 → 앞부분 건너뛰기 → 제한 수만큼 반환.