我尝试过这样的事情
select Id,UserId from myTable group by Id,UserId having COUNT(UserId)<7
现在我想做的是为每个用户 ID 选择 6 条记录。但我的方法失败了。
那么正确的语法是什么?
Id为主键聚集索引
最佳答案
这应该会让你非常接近
WITH r ( userid, rnk )
AS ( SELECT userid, RANK() OVER ( PARTITION BY id ) AS rnk
FROM MyTable
GROUP BY userid)
SELECT r.*
FROM r
WHERE r.Rank <= 6
关于sql-server - 如何为每个组选择前 x 条记录,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/14025255/