对于下表TestTable:
| Id | Name | Flags |
|----|-------|-------|
| 1 | name1 | 1 |
| 2 | name2 | 1 |
| 3 | name3 | 2 |
| 4 | name4 | 2 |
| 5 | name5 | 3 |
如何按标志分组并返回前两组。也就是说我应该返回行:
| 1 | name1 | 1 |
| 2 | name2 | 1 |
| 3 | name3 | 2 |
| 4 | name4 | 2 |
我试过了:
select *
from TestTable
group by Flags
order by Flags
limit 0,2
但是查询只返回了2行。
答案 0 :(得分:1)
您可以使用子查询仅获取前两个标志,并加入:
select t.id, t.name, t.flags
from testtable t
inner join (select distinct flags
from testtable
order by 1
limit 2) filter
on filter.flags = t.flags;
上查看它