【发布时间】:2015-08-10 22:24:31
【问题描述】:
我目前正在阅读其他人创建的程序,但我不明白这行代码:
TotalRecordsCount = COUNT(Id) OVER().
通常人们在OVER() 中使用分区依据。
如果OVER()中不传入参数,会怎样?
【问题讨论】:
标签: sql sql-server-2008
我目前正在阅读其他人创建的程序,但我不明白这行代码:
TotalRecordsCount = COUNT(Id) OVER().
通常人们在OVER() 中使用分区依据。
如果OVER()中不传入参数,会怎样?
【问题讨论】:
标签: sql sql-server-2008
我不认为标记为重复的问题解决了在这种特定情况下发生的情况,即在没有参数的情况下使用over(),因此尽管有重复标志,我仍会发布答案...
对于某些窗口函数,partition 和 order by 子句是可选的; count 是其中之一,因为在没有分区的情况下将计数应用于变量是非常有意义的——计数将应用于整个集合——而像 rank 或 row_number 这样的函数如果没有某种顺序就没有任何意义。
引用参考文档:
如果未指定 PARTITION BY,则函数将处理 查询结果集为单个组。
如果未指定 ORDER BY,则整个分区用于窗口 框架。这仅适用于不需要 ORDER BY 的函数 子句。
【讨论】: