以下文章(https://docs.microsoft.com/en-us/sql/t-sql/queries/select-over-clause-transact-sql)声称:
可以使用over子句找出“每组前N个”结果。
请举个例子。
您诚挚的
答案 0 :(得分:2)
一种方法是:
select t.*
from (select t.*,
row_number() over (partition by grp order by col) as seqnum
from t
) t
where seqnum <= @n;
答案 1 :(得分:0)
这是一项简单的任务
MAX(column) OVER(PARTITION BY column) AS mx
您将获得每个列值的最大值,即TOP N
将MAX替换为其他聚合函数以获得另一种洞察力,如MIN,AVG等。