2

在阅读了一个实验后,我决定我需要问:

我正在尝试根据行号的总和从表中检索特定数量的行:这是一个包含两列的基本表:CusID, CusName.

我首先将每一行编号为 1,以便我可以使用行号的总和,或者我是这么认为的。

WITH Example AS
(
    SELECT  
       *, 
       ROW_NUMBER() OVER (Partition by CusID ORDER BY CusID) AS RowNumber
    FROM 
       MySchema.MyTable
)

我不知道如何超越这里。我尝试使用该HAVING子句,但显然这行不通。我也可以使用 TOP 或 Percent。

但我想根据行号的总和来检索行。

这样做的方法是什么?

4

1 回答 1

3

首先,窗口函数不能在另一个窗口函数或聚合的上下文中使用。所以你不能在 row_number 内使用聚合函数,我认为它比在你的 with 之后使用所有函数更好

 WITH Example AS
(
SELECT *, ROW_NUMBER() OVER (Partition by CusID ORDER BY CusID) AS RowNumber
FROM MySchema.MyTable
)
select cusid,cusname,sum(rownumber) from example 
group by Cusid,Cusname
having .....
于 2013-09-08T06:45:45.297 回答