如何使用与SQL Server

问题描述:

下面的文章(https://docs.microsoft.com/en-us/sql/t-sql/queries/select-over-clause-transact-sql)声称的OVER()子句前n:如何使用与SQL Server

人们可以找到结果 “每组前N个” 使用过的条款。

请给我一个例子。

此致

一种方法是:

select t.* 
from (select t.*, 
      row_number() over (partition by grp order by col) as seqnum 
     from t 
    ) t 
where seqnum <= @n; 

它的一件容易的事

MAX(column) OVER(PARTITION BY column) AS mx 

您将获得每个列的值,这是TOP N

最大值

用其他集合函数替换MAX以获得另一个洞察,如MIN,AVG等。