SQL具有多个选定字段的子句

时间:2014-02-19 20:24:22

标签: sql firebird having

我有一个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,我不希望他们包括在我的结果中。

2 个答案:

答案 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 );