1년치 시계열 만들기
이 연습 문제의 목표는 1년 동안의 날짜 목록(시계열)을 만드는 것입니다. 이를 위해 다음 두 가지 시간/날짜 함수를 사용하세요.
GETDATE()DATEADD(datepart, number, date)
GETDATE()는 현재 시각을 반환합니다(예: 2019-03-14 20:09:14). DATEADD(month, 1, GETDATE())는 현재 시각에 한 달을 더한 값을 반환합니다(예: 2019-04-14 20:09:14).
1년치 날짜 목록을 얻으려면 365번의 재귀 단계가 필요합니다.
따라서 OPTION (MAXRECURSION n)에서 n을 반복 횟수(여기서는 365)를 나타내도록 늘려 주세요.
이 연습은 강의의 일부입니다
SQL Server에서의 계층형 및 재귀 쿼리
연습 안내
- 현재 시각을
time으로 초기화하세요. - CTE를 재귀적으로 선택하고, 앵커 멤버와 재귀 멤버를 올바른 구문으로 결합하세요.
- 반복 횟수를 1년의 일수에서 1을 뺀 값으로 제한하세요.
OPTION (MAXRECURSION n)을 사용해 최대 반복 횟수를 1년의 일수와 같게 늘리세요.
실습형 인터랙티브 연습
이 예제를 이 샘플 코드를 완성하여 풀어보세요.
WITH time_series AS (
SELECT
-- Get the current time
___ AS time
UNION ALL
SELECT
DATEADD(day, 1, time)
-- Call the CTE recursively
FROM ___
-- Limit the time series to 1 year minus 1 (365 days -1)
WHERE time < GETDATE() + ___)
SELECT time
FROM time_series
-- Increase the number of iterations (365 days)
OPTION(MAXRECURSION ___)