여러 절차를 거쳐야 하는 SQL 쿼리가 있을 수 있다.
WITH 구문은 중간 결과를 테이블로 저장할 수 있게 한다.
형식
WITH 중간테이블명 AS (
SELECT 컬럼1, 컬럼2, ..
FROM 테이블
)
SELECT 컬럼들
FROM 중간테이블
* 주의점은 WITH 구문만 써놓으면 오류가 난다.
최종 결과를 위한 중간 테이블이기 때문에, 꼭 WITH 구문 뒤에 SELECT 문을 붙여줘야 한다.
예시 코드
문제: 다음날의 미세먼지 농도가 오늘 보다 짙은 날만 구하기
https://solvesql.com/problems/bad-finedust-measure/
WITH table_a AS(
SELECT
measured_at AS today,
LEAD(measured_at) OVER (ORDER BY measured_at) AS next_day,
pm10 AS pm10,
LEAD(pm10) OVER (ORDER BY measured_at) AS next_pm10
FROM measurements
)
SELECT *
FROM table_a
WHERE next_pm10 > pm10
'SQL > SQLite' 카테고리의 다른 글
[SQLite][문제풀이] 레스토랑 요일 별 구매 금액 Top3 영수증 (0) | 2024.11.11 |
---|---|
[SQLite] JOIN (0) | 2024.10.04 |
[SQLite] CASE IF (1) | 2024.10.03 |
[SQLite] LEAD OVER 구문 (1) | 2024.10.03 |
[SQLite] datetime 관련 함수 (1) | 2024.10.03 |