2

私はこのようなことを試しました

select Id,UserId from myTable group by Id,UserId having COUNT(UserId)<7

今私がやりたいことは、ユーザーIDごとに6つのレコードを選択することです。しかし、私のアプローチは失敗しました。

では、正しい構文は何ですか?

Id は主キーのクラスター化インデックスです

4

1 に答える 1

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 
于 2012-12-24T20:35:16.600 に答える