窗口范围:ROWS BETWEEN 和RANG BETWENN,一个从数据行的角度定义窗口范围,一个从值的角度。
WITH t as (
SELECT 1 as i,
1 as col
UNION ALL
SELECT 2, 1
)
SELECT t.*,
SUM(col) OVER (ORDER BY col
ROWS BETWEEN UNBOUNDED PRECEDING AND CURRENT ROW
) as ROWSresult,
SUM(col) OVER (ORDER BY col
RANGE BETWEEN UNBOUNDED PRECEDING AND CURRENT ROW
) as RANGEresult
FROM t
i col rowsresult rangeresult
1 1 1 2
2 1 2 2
ROWS子句计算每一行, RANGE计算具有相同值的数据,其窗口范围由当前行的值决定。col两行值相同因此这两行数据
都包含在窗口范围之内。