2013-01-04 62 views
2

可能重複:
How do I select a fixed number of rows for each group?有沒有辦法從每組行中獲取2行?

例如...如果我有這樣的表(按顏色排序):

-------------- 
| id | color | 
-------------- 
| 95 | red | 
| 7 | red | 
| 44 | red | 
| 46 | red | 
| 49 | red | 
| 24 | green | 
| 37 | green | 
| 91 | green | 
| 88 | green | 
| 44 | blue | 
| 10 | blue | 
| 11 | blue | 
-------------- 

有我的方式從每種顏色獲得2行?例如:

-------------- 
| id | color | 
-------------- 
| 7 | red | 
| 44 | red | 
| 24 | green | 
| 37 | green | 
| 10 | blue | 
| 11 | blue | 
-------------- 
+0

其中2 ....... – zerkms

+0

它並不真的重要嗎?。具有最低ID的2將很好。 – supercoolville

回答

8

,你可以有這樣的事情,

SELECT id, color 
FROM TableName a 
WHERE 
(
    SELECT COUNT(*) 
    FROM TableName AS f 
    WHERE f.color = a.color AND f.id <= a.id 
) <= 2; 
相關問題