본문으로 바로가기
본문으로 바로가기

시간 윈도우 함수

Experimental feature. Learn more.
Not supported in ClickHouse Cloud

시간 윈도우 함수는 해당 윈도우의 「포함되는 하한값」과 「포함되지 않는 상한값」(이상/미만 경계값)을 반환합니다. WindowView를 다루는 함수는 다음과 같습니다:

hop

도입된 버전: v21.12.0

Hop 시간 윈도우는 고정된 기간(window_interval)을 가지며, 지정된 hop 간격(hop_interval)만큼 이동합니다. hop_intervalwindow_interval보다 작으면 hop 윈도우는 서로 겹치게 됩니다. 따라서 하나의 레코드는 여러 윈도우에 할당될 수 있습니다.

하나의 레코드가 여러 hop 윈도우에 할당될 수 있으므로, hop 함수가 WINDOW VIEW 없이 사용될 때는 첫 번째 윈도우의 경계만 반환합니다.

문법

hop(time_attr, hop_interval, window_interval[, timezone])

인수

  • time_attr — 날짜 및 시간. DateTime
  • hop_interval — 양수 hop 간격. Interval
  • window_interval — 양수 윈도우 간격. Interval
  • timezone — 선택적. 타임존 이름. String

반환 값

해당 hopping 윈도우의 포함되는 하한 값과 포함되지 않는 상한 값을 반환합니다. Tuple(DateTime, DateTime)

예시

Hopping 윈도우

SELECT hop(now(), INTERVAL '1' DAY, INTERVAL '2' DAY)
('2024-07-03 00:00:00','2024-07-05 00:00:00')

hopEnd

도입된 버전: v22.1.0

해당 hopping window의 배타적 상한값을 반환합니다.

하나의 레코드가 여러 hop window에 할당될 수 있으므로, WINDOW VIEW 없이 hop 함수가 사용되는 경우 함수는 첫 번째 window의 경계만 반환합니다.

구문

hopEnd(time_attr, hop_interval, window_interval[, timezone])

인자

  • time_attr — 날짜와 시간. DateTime
  • hop_interval — 양수 hop 간격. Interval
  • window_interval — 양수 윈도우 간격. Interval
  • timezone — 선택 사항. 시간대 이름. String

반환 값

해당 hopping 윈도우의 상한(배타적)을 반환합니다. DateTime

예시

Hopping 윈도우 종료 시각

SELECT hopEnd(now(), INTERVAL '1' DAY, INTERVAL '2' DAY)
2024-07-05 00:00:00

hopStart

도입 버전: v22.1.0

해당 hop 윈도우의 포함되는 하한 경계를 반환합니다.

하나의 레코드가 여러 hop 윈도우에 할당될 수 있으므로, WINDOW VIEW 없이 hop 함수가 사용되는 경우 첫 번째 윈도우의 경계값만 반환합니다.

구문

hopStart(time_attr, hop_interval, window_interval[, timezone])

인수

  • time_attr — 날짜와 시간. DateTime
  • hop_interval — 양의 hopping 간격. Interval
  • window_interval — 양의 window 간격. Interval
  • timezone — 선택 사항. 타임존 이름. String

반환 값

해당 hopping 윈도우의 포함되는 하한값을 반환합니다. DateTime

예시

Hopping 윈도우 시작

SELECT hopStart(now(), INTERVAL '1' DAY, INTERVAL '2' DAY)
2024-07-03 00:00:00

tumble

도입된 버전: v21.12.0

tumbling 시간 윈도우는 고정된 길이(interval)를 가진 서로 겹치지 않는 연속적인 윈도우에 레코드를 할당합니다.

구문

tumble(time_attr, interval[, timezone])

인수(Arguments)

  • time_attr — 날짜와 시간. DateTime
  • interval — 윈도우 간격을 나타내는 Interval 값. Interval
  • timezone — 선택 사항. 타임존 이름. String

반환 값

해당 tumbling window의 포함되는 하한과 포함되지 않는 상한 경계를 반환합니다. Tuple(DateTime, DateTime)

예시(Examples)

Tumbling window

SELECT tumble(now(), toIntervalDay('1'))
('2024-07-04 00:00:00','2024-07-05 00:00:00')

tumbleEnd

도입 버전: v22.1.0

해당 텀블링 윈도에 대한 배타적 상한을 반환합니다.

구문

tumbleEnd(time_attr, interval[, timezone])

인수(Arguments)

  • time_attr — 날짜와 시간. DateTime
  • intervalInterval 단위의 윈도우 간격. Interval
  • timezone — 선택 사항. 타임존 이름. String

반환 값

해당 텀블링 윈도우에 대한 배타적인 상한 값을 반환합니다. DateTime

예시(Examples)

텀블링 윈도우 종료 시점

SELECT tumbleEnd(now(), toIntervalDay('1'))
2024-07-05 00:00:00

tumbleStart

도입된 버전: v22.1.0

해당 텀블링 윈도의 포함 구간 시작 값을 반환합니다.

구문

tumbleStart(time_attr, interval[, timezone])

인수

  • time_attr — 날짜와 시간. DateTime
  • interval — 윈도우 간격을 나타내는 Interval. Interval
  • timezone — 선택 사항. 타임존 이름. String

반환 값

해당 텀블링 윈도우의 하한(포함 경계)을 반환합니다. DateTime

예시

텀블링 윈도우 시작

SELECT tumbleStart(now(), toIntervalDay('1'))
2024-07-04 00:00:00

windowID

도입 버전: v22.1.0

해당 텀블링(tumbling) 윈도 또는 호핑(hopping) 윈도의 식별자를 반환합니다. 이 함수는 WINDOW VIEW에서만 사용할 수 있습니다.

구문

windowID(time_attr, interval[, timezone])

인수

  • time_attr — 날짜와 시간. DateTime
  • interval — 윈도우 간격을 나타내는 Interval 값. Interval
  • timezone — 선택 사항. 시간대 이름. String

반환 값

해당 윈도우의 식별자를 반환합니다. UInt32

예시

윈도우 ID

SELECT windowID(now(), toIntervalDay('1'))