有没有办法从每组行中获取 2 行? [复制]
Posted
技术标签:
【中文标题】有没有办法从每组行中获取 2 行? [复制]【英文标题】:Is there a way to get 2 rows from each group of rows? [duplicate] 【发布时间】:2013-01-04 01:30:52 【问题描述】:可能重复:How do I select a fixed number of rows for each group?
例如...如果我有这张表(按颜色排序):
--------------
| 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 |
--------------
【问题讨论】:
这并不重要。 id 最低的 2 就可以了。 【参考方案1】:你可以有这样的东西,
SELECT id, color
FROM TableName a
WHERE
(
SELECT COUNT(*)
FROM TableName AS f
WHERE f.color = a.color AND f.id <= a.id
) <= 2;
SQLFiddle Demo
【讨论】:
以上是关于有没有办法从每组行中获取 2 行? [复制]的主要内容,如果未能解决你的问题,请参考以下文章