日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 > 编程资源 > 编程问答 >内容正文

编程问答

Rows Over Window与Range Over Window的区别

發布時間:2023/12/31 编程问答 44 豆豆
生活随笔 收集整理的這篇文章主要介紹了 Rows Over Window与Range Over Window的区别 小編覺得挺不錯的,現在分享給大家,幫大家做個參考.

版本

組件版本
Flink1.12
Ubuntu20.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;

實驗結果是:

itemIDitemTypeonSellTimepricemaxPrice
ITEM001Electronic2017-11-11 10:01:002020
ITEM002Electronic2017-11-11 10:02:005050
ITEM003Electronic2017-11-11 10:03:003050
ITEM004Electronic2017-11-11 10:03:006060
ITEM005Electronic2017-11-11 10:05:004060
ITEM006Electronic2017-11-11 10:06:002060
ITEM007Electronic2017-11-11 10:07:007070
ITEM008Clothes2017-11-11 10:08:002020

?

詳細計算

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指的是閉區間

實驗結果是:

itemIDitemTypeonSellTimepricemaxPrice
ITEM001Electronic2017-11-11 10:01:002020
ITEM002Electronic2017-11-11 10:02:005050
ITEM003Electronic2017-11-11 10:03:003060
ITEM004Electronic2017-11-11 10:03:006060
ITEM005Electronic2017-11-11 10:05:004060
ITEM006Electronic2017-11-11 10:06:002040
ITEM007Electronic2017-11-11 10:07:007070
ITEM008Clothes2017-11-11 10:08:002020

?

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的区别的全部內容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網站內容還不錯,歡迎將生活随笔推薦給好友。