Rows Over Window与Range Over Window的区别
生活随笔
收集整理的這篇文章主要介紹了
Rows Over Window与Range Over Window的区别
小編覺得挺不錯的,現在分享給大家,幫大家做個參考.
版本
| 組件 | 版本 |
| Flink | 1.12 |
| Ubuntu | 20.04 |
概述
本文是對[1]的復現,[1]中的一些實驗結果是錯誤的,不要迷信,一定要自己實際操作和驗證.
完整操作
https://gitee.com/appleyuchi/Flink_Code/blob/master/sql_api/over.sql
解析
ROWS OVER Window
具體操作是:
SELECTitemID,itemType,onSellTime,price, MAX(price) OVER (PARTITION BY itemType ORDER BY onSellTime ROWS BETWEEN 2 preceding AND CURRENT ROW) AS maxPriceFROM tmall_item;實驗結果是:
| ITEM001 | Electronic | 2017-11-11 10:01:00 | 20 | 20 |
| ITEM002 | Electronic | 2017-11-11 10:02:00 | 50 | 50 |
| ITEM003 | Electronic | 2017-11-11 10:03:00 | 30 | 50 |
| ITEM004 | Electronic | 2017-11-11 10:03:00 | 60 | 60 |
| ITEM005 | Electronic | 2017-11-11 10:05:00 | 40 | 60 |
| ITEM006 | Electronic | 2017-11-11 10:06:00 | 20 | 60 |
| ITEM007 | Electronic | 2017-11-11 10:07:00 | 70 | 70 |
| ITEM008 | Clothes | 2017-11-11 10:08:00 | 20 | 20 |
?
詳細計算
max{20}=20
max{20,50}=50
max{20,50,30}=50
max{50,30,60}=60
max{30,60,40}=60
max{60,40,20}=60
max{40,20,70}=70
max{20}=20(因為更換ItemType了)
?
RANGE OVER Window
具體操作是:
SELECT itemID,itemType, onSellTime, price, MAX(price) OVER (PARTITION BY itemType ORDER BY onSellTime RANGE BETWEEN INTERVAL '2' MINUTE preceding AND CURRENT ROW) AS maxPriceFROM tmall_item;這里的INTERVAL '2' MINUTE preceding指的是閉區間
實驗結果是:
| ITEM001 | Electronic | 2017-11-11 10:01:00 | 20 | 20 |
| ITEM002 | Electronic | 2017-11-11 10:02:00 | 50 | 50 |
| ITEM003 | Electronic | 2017-11-11 10:03:00 | 30 | 60 |
| ITEM004 | Electronic | 2017-11-11 10:03:00 | 60 | 60 |
| ITEM005 | Electronic | 2017-11-11 10:05:00 | 40 | 60 |
| ITEM006 | Electronic | 2017-11-11 10:06:00 | 20 | 40 |
| ITEM007 | Electronic | 2017-11-11 10:07:00 | 70 | 70 |
| ITEM008 | Clothes | 2017-11-11 10:08:00 | 20 | 20 |
?
max{20}=20
max{20,50}=50
max{20,50,30,60}=60(這個地方是按照時間范圍interval在掃描該時間范圍內的數據)
max{50,30,60}=60
max{30,60,40}=60(這個地方的結果體現了INTERVAL '2' MINUTE preceding指的是閉區間,因為剛好差了2分鐘)
max{40,20}=40
max{40,20,70}=70
max{20}=20(因為更換ItemType了)
Reference:
[1]OVER窗口
創作挑戰賽新人創作獎勵來咯,堅持創作打卡瓜分現金大獎總結
以上是生活随笔為你收集整理的Rows Over Window与Range Over Window的区别的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: Win 虚拟按键对照表(Virtual-
- 下一篇: windows下如何批量修改文件名