获取一定数量的多个值的记录

时间:2018-02-28 17:37:19

标签: sqlite limit-per-group

我有一张这样的表:

_id,  name,  type
1     A_0    a
2     A_1    a
3     A_2    a
4     A_3    a
5     B_0    b
6     B_1    b
7     B_2    b
8     B_3    b

我希望得到一个搜索结果,其中我得到每种类型的两行。

更新

我的结果应该是这样的: (会有更多类型)

_id,  name,  type
1     A_0    a
2     A_1    a
5     B_0    b
6     B_1    b

有没有人碰巧有解决方案?

1 个答案:

答案 0 :(得分:0)

对于每个类型,获取由_id排序的2行,然后在外部查询中使用这些ID拉出行:

SELECT * FROM TheTable AS X WHERE _id IN 
(
      SELECT Y._id FROM TheTable AS Y
      WHERE X.type = Y.type
      ORDER BY Y._id ASC
      LIMIT 2
) ORDER BY _id;