我试过这样的事情
select Id,UserId from myTable group by Id,UserId having COUNT(UserId)<7
现在我要做的是为每个用户ID选择6条记录。但我的方法失败了。
那么正确的语法是什么?
Id是主键聚集索引
答案 0 :(得分:2)
这应该让你非常接近
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