什么时候一起使用“UNBOUNDED PRECEDING AND CURRENT ROW”而不仅仅是“UNBOUNDED PRECEDING”

问题描述 投票:1回答:1

我正在运行一个旧的同事查询,并且在查询中使用了ROWS BETWEEN UNBOUNDED PRECEDING和CURRENT ROW。我很好奇何时只使用UNBOUNDED PRECEDING本身或者像上面那样写

我尝试了两种方法,但得到了相同的结果,但我只在数据的一个子集上尝试过。如果我更新代码,我担心我可能会遗漏一些东西,所以我希望能够清楚地理解这些概念

E.g

SELECT *
  , sum(pct) OVER(
    PARTITION BY id, id2, zip 
    ORDER BY amount desc 
    ROWS BETWEEN UNBOUNDED PRECEDING AND CURRENT ROW 
  ) AS cumulative_pct
FROM #a

SELECT *
  , sum(pct) OVER(
    PARTITION BY id, id2, zip 
    ORDER BY amount desc ROWS  UNBOUNDED PRECEDING 
  ) AS cumulative_pct
FROM #a
sql window-functions
1个回答
0
投票

他们做同样的事情。 ROWS UNBOUNDED PRECEDING的默认设置是将窗口扩展到当前行。

我总是使用BETWEEN,因为这是我第一次学习窗口函数时学到的东西。两者都是可以接受的,我没有看到ROWS BETWEEN UNBOUNDED PRECEDING AND CURRENT ROW的优势。

最新问题
© www.soinside.com 2019 - 2024. All rights reserved.