窗口
分組表達式
適用於:磚的SQL磚運行時
在時間戳表達式上創建基於跳躍的滑動窗口。
參數
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