使用聚合函数时 CTE 表现异常

CTE is behaving unexpectedly when an aggregate function is used

当我在 CTE 中使用聚合函数时,我收到一条错误消息。下面是查询和与之关联的错误消息。当我删除聚合函数时它工作正常。我在某处错过了窍门。

代码:

;
With CTE as (
    Select
        sn,
        ed,
        sum(c) c,
        row_number() over (partition by sn, ed order by sn, sum(c) desc, ed) rn
    from TD
    where ed >= '11/15/2018'
)
select * from CTE

错误信息:

Column TD.sn is invalid in the select list because it is not contained in either an aggregate function or the group by clause.

您在查询中使用了聚合函数但未使用分组依据

With CTE as (
    Select
        sn,
        ed,
        sum(c) c,
        row_number() over (partition by sn order by  sum(c) desc) rn
    from TD
    where ed >= '11/15/2018'
   group by sn,
        ed
)
select * from CTE where rn<=3