2012-12-24 70 views
2

我想是這樣的如何選擇前X記錄各組

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

現在我想做的事就是選擇6條每個用戶ID。但我的做法失敗了。

那麼正確的語法是什麼?

編號是主鍵聚集索引

回答

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