SQl / DB2 - 仅显示存在3次或更多次的行

时间:2012-04-23 18:12:32

标签: sql db2

使用此声明我得到以下结果:

SELECT Employee.Lastname, Employee.Firstnme, EMP_ACT.Projno
FROM Employee Join EMP_ACT 
On Employee.Empno = EMP_Act.Empno

结果:

HAAS            CHRISTINE    AD3100
PULASKI         EVA          AD3110
JEFFERSON       JAMES        AD3111
JEFFERSON       JAMES        AD3111
JEFFERSON       JAMES        AD3111
JEFFERSON       JAMES        AD3111
JEFFERSON       JAMES        AD3111

现在我想只显示存在3次或更多次的行。最后一列应显示Projno的数量。

例如:JEFFERSON JAMES 5

我试过这种方式:

GROUP BY Projno HAVING COUNT(*) >= 3

但我总是收到错误:/

感谢

1 个答案:

答案 0 :(得分:4)

您希望按照select语句中使用的所有非聚合列进行分组。

SELECT Employee.Lastname, Employee.Firstnme, EMP_ACT.Projno, COUNT(*)
    FROM Employee 
        Join EMP_ACT 
            On Employee.Empno = EMP_Act.Empno
    GROUP BY Employee.Lastname, Employee.Firstnme, EMP_ACT.Projno
    HAVING COUNT(*) >= 3