【发布时间】:2022-01-22 03:32:51
【问题描述】:
我今天尝试类似的操作时出错
sum(balance) over(rows between unbounded preceding and unbounded following)
错误是窗口需要 order by 语句。但是,当对所有行求和时(这与没有窗口函数的简单 sum(balance) 给出相同的结果),不需要按信息排序。不仅如此,我不希望 SQL 浪费时间对我的行进行排序,只是为了将它们全部相加。
在这种情况下 SQL 需要 order by 是否有充分的理由?是我天真,我错过了什么,还是这实际上是不必要的?
【问题讨论】:
-
如果没有某种
order,您将如何确定之前(之前)或之后(之后)的内容? -
指定窗框时需要order by语句。就做
sum over() -
如果你想把它们全部加起来,那么使用
over(),里面没有任何东西。
标签: sql sum snowflake-cloud-data-platform window-functions