根据计数

时间:2015-11-30 11:24:23

标签: sqlite select count

我有这样的表:

id | name | type
-----------------
 0 | firs |    2
 1 | secs |    3
 2 | this |    9
 1 | thus |    3

我知道id(它不是唯一的id)和类型,我想只有在指定数量的记录具有该id和类型时才选择记录。
我试过一个记录,例如:

select * from myTable
where
(select count(*) from myTable where myTable.id = 0 and myTable.type = 2) = 1;

这会返回所有行,而不仅仅是我想要的行。任何人都可以告诉我,如何获得正确结果的正确方法是什么?

1 个答案:

答案 0 :(得分:0)

您的where语句看起来像WHERE 1 = 1并且它始终为true,因此SELECT从表中获取每一列。 如果你想选择例如id为1且type = 3且出现次数= 2的数据,你可以这样做:

select * from myTable
where
(select count(*) from myTable where myTable.id = 1 and myTable.type = 3) = 2 and myTable.id = 1 and myTable.type = 3;