我有一个SQL查询,如下所示:
SELECT field1, field2, field3, field4, field5
FROM tablename
WHERE field1 = condition
GROUP BY 1,2,3,4,5
HAVING COUNT(field1) > 2
我希望查询只返回结果集中超过2行的结果,但查询返回0。
有谁可以指出我做错了什么?我需要保持我的查询选择它已经存在的字段,但是将结果限制为仅返回至少有2行的结果。如果他们只有1,我不希望他们包括在我的结果中。
答案 0 :(得分:1)
where子句指定field1必须等于condition。
count(field1)基本上总是1(field1的不同值将是1并且等于条件)。
这就是为什么我们总是有0个结果,因为计数永远不会> 2。
答案 1 :(得分:0)
我怀疑(虽然我根据我不确定的问题发表评论)你想要
SELECT field1, field2, field3, field4, field5
FROM tablename
WHERE field1 = condition
AND field1 IN
(SELECT field1
FROM tablename
GROUP BY 1
HAVING COUNT(field1) >=2 );