다음을 통해 공유


window 그룹화 식

적용 대상: 예로 표시된 확인 Databricks SQL 예로 표시된 확인 Databricks Runtime

타임스탬프 식에 대해 도약 기반 슬라이딩 윈도우를 만듭니다.

구문

window(expr, width [, slide [, start] ] )

인수

  • expr: 창의 제목을 지정하는 TIMESTAMP 식입니다.
  • widthSTRING: 창의 너비를 리터럴로 나타내는 리터럴입니다INTERVAL DAY TO SECOND.
  • slide: 자정부터 시작까지의 오프셋을 나타내는 선택적 리터럴 STRING 로, 리터럴로 INTERVAL HOUR TO SECOND 표현됩니다.
  • start: 리터럴로 표현된 다음 창의 시작을 나타내는 선택적 리터럴 STRING 입니다 INTERVAL DAY TO SECOND .

반품

집계 함수로 작업할 수 있는 그룹화 집합을 반환합니다. GROUP BY 열 이름은 window입니다. STRUCT<start TIMESTAMP, end TIMESTAMP> 형식입니다.

slidewidth보다 작거나 같아야 합니다. startslide보다 작아야 합니다.

slide<width인 경우 각 그룹의 행이 겹칩니다. 기본적으로 slidewidth와 같으므로 expr은 그룹으로 분할됩니다. 기간 설정은 1970-01-01 00:00:00 UTC + start에서 시작됩니다. start에 대한 기본값은 '0 SECONDS'입니다.’

예제

> SELECT window, min(val), max(val), count(val)
  FROM VALUES (TIMESTAMP'2020-08-01 12:20:21', 17),
              (TIMESTAMP'2020-08-01 12:20:22', 12),
              (TIMESTAMP'2020-08-01 12:23:10',  8),
              (TIMESTAMP'2020-08-01 12:25:05', 11),
              (TIMESTAMP'2020-08-01 12:28:59', 15),
              (TIMESTAMP'2020-08-01 12:30:01', 23),
              (TIMESTAMP'2020-08-01 12:30:15',  2),
              (TIMESTAMP'2020-08-01 12:35:22', 16) AS S(stamp, val)
  GROUP BY window(stamp, '2 MINUTES 30 SECONDS', '30 SECONDS', '15 SECONDS');
  {2020-08-01 12:19:15, 2020-08-01 12:21:45} 12       17       2
  {2020-08-01 12:18:15, 2020-08-01 12:20:45} 12       17       2
  {2020-08-01 12:20:15, 2020-08-01 12:22:45} 12       17       2
  {2020-08-01 12:19:45, 2020-08-01 12:22:15} 12       17       2
  {2020-08-01 12:18:45, 2020-08-01 12:21:15} 12       17       2
  {2020-08-01 12:21:45, 2020-08-01 12:24:15} 8        8        1
  {2020-08-01 12:22:45, 2020-08-01 12:25:15} 8        11       2
  {2020-08-01 12:21:15, 2020-08-01 12:23:45} 8        8        1
  {2020-08-01 12:22:15, 2020-08-01 12:24:45} 8        8        1
  {2020-08-01 12:20:45, 2020-08-01 12:23:15} 8        8        1
  {2020-08-01 12:23:45, 2020-08-01 12:26:15} 11       11       1
  {2020-08-01 12:23:15, 2020-08-01 12:25:45} 11       11       1
  {2020-08-01 12:24:45, 2020-08-01 12:27:15} 11       11       1
  {2020-08-01 12:24:15, 2020-08-01 12:26:45} 11       11       1
  {2020-08-01 12:27:15, 2020-08-01 12:29:45} 15       15       1
  {2020-08-01 12:27:45, 2020-08-01 12:30:15} 15       23       2
  {2020-08-01 12:28:45, 2020-08-01 12:31:15} 2        23       3
  {2020-08-01 12:26:45, 2020-08-01 12:29:15} 15       15       1
  {2020-08-01 12:28:15, 2020-08-01 12:30:45} 2        23       3
  {2020-08-01 12:29:45, 2020-08-01 12:32:15} 2        23       2