根据行号的总和检索特定行数

时间:2013-09-08 03:18:24

标签: sql-server tsql

在阅读实验后,我决定要问:

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

我开始将每一行编号为1,以便我可以使用行号的SUM,或者我认为。

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

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

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

这样做的方法是什么?

1 个答案:

答案 0 :(得分:3)

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

 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 .....