窗口分組表達式

適用於:勾選“是”磚的SQL勾選“是”磚運行時

在時間戳表達式上創建基於跳躍的滑動窗口。

語法

窗口expr寬度(,幻燈片(,開始

參數

  • expr:指定窗口主題的TIMESTAMP表達式。

  • 寬度:一個字符串字麵值,表示窗口的寬度,作為INTERVAL DAY TO SECOND字麵值。

  • 開始:一個可選的字符串字麵值,表示下一個窗口的開始,表示為INTERVAL DAY TO SECOND字麵值。

  • 幻燈片:一個可選的STRING字麵值,表示從午夜到開始的偏移量,表示為INTERVAL HOUR to SECOND字麵值。

返回

返回一組可以用聚合函數操作的分組。GROUP BY列名為窗口.它是類型的STRUCT <開始:時間戳,結束:時間戳>

幻燈片必須小於或等於寬度開始必須小於幻燈片

如果幻燈片<寬度每組中的行重疊。默認情況下幻燈片=寬度所以expr被劃分為組。開窗開始於1970-01-0100:00:00UTC+開始.默認的開始“0秒的

例子

> SELECT window, min(val), max(val), count(val) FROM VALUES (TIMESTAMP'2020-08-01 12:20:21', 17), (TIMESTAMP'2020-08-01 12:23:10', 12), (TIMESTAMP'2020-08-01 12:25:59 ', 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:20: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: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:22:15, 2020-08-01 12:24:45} 8 8 1 {2020-08-01 12:22:15, 2020-08-01 12:24: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:20:45,8 8 1 {2020-08-01 12:23:45, 2020-08-01 12:26:15} 11 11 1 {2020-08-01 12:24:45, 2020-08-01 12:26:45} 11 11 1 {2020-08-01 12:24: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 1 {2020-08-01 12:26:15, 2020-08-01 12:29: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