gpt4 book ai didi

SQL - 何时使用空的 OVER 子句?

转载 作者:行者123 更新时间:2023-12-03 01:27:26 24 4
gpt4 key购买 nike

我正在分析一些在 Count() 竞赛中使用空 OVER 子句的代码。

示例:

SELECT 
ROW_NUMBER() OVER (ORDER BY Priority DESC) AS RowID,
CAST((COUNT(*) OVER() / @pagesize) AS Int) AS TotalPages,

我试图理解为什么这里使用空的 OVER 子句。

上面列出的这两行下面还有其他标准选择元素,当我从第二个 TotalPages 行中删除空的 OVER 子句时,我会收到如下错误:

Column 'TableA.Priority' is invalid in the select list because it is not contained in either an aggregate function or the GROUP BY clause.

一旦我把 OVER() 放回去,错误就消失了。

我对 OVER 子句的理解非常有限...我觉得我了解 RowID 行中发生的情况...但 TotalPages 行让我感到困惑。

最佳答案

OVER() 是分析函数的一部分,用于定义记录集中的分区。 OVER() 只是一个分区并应用于整个数据集

即COUNT(*) OVER() 将返回数据集中每行的记录数。

看这个http://msdn.microsoft.com/en-us/library/ms189461.aspx

关于SQL - 何时使用空的 OVER 子句?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/3355203/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com