2013-03-09 68 views
1

我需要做一个查询计数有多少员工在有超过1名员工并与员工数量大于或等于6每个部门,我有:如何在MySQL中使用count函数的结果?

Select DepartmentName, count(EmployeeNumber) as "Number of Employees" 
From department d, employee e 
Where d.DepartmentName = e.Department and e.EmployeeNumber <=6 
Group by d.DepartmentName; 

这充满除了关于有部分的所有要求超过1名员工,有没有办法只执行代码的其余部分,从第一行返回2或更大的结果?

回答

2

使用HAVING子句。请注意,在整个事情计算完毕后才会应用它。

Select DepartmentName, count(EmployeeNumber) as "Number of Employees" 
From department d, employee e 
Where d.DepartmentName = e.Department and e.EmployeeNumber <=6 
Group by d.DepartmentName HAVING count(EmployeeNumber) > 1; 
+0

不知道这是否会别名工作。我可能会坚持'有计数(EmployeeNumber)> 1' – Kermit 2013-03-09 17:56:04

+0

@AarolamaBluenk同意。我更新了我的答案。 – 2013-03-09 17:57:40

1

试试这个

Select DepartmentName, count(EmployeeNumber) as "Number of Employees" 
    From department d, employee e 
    Where d.DepartmentName = e.Department 
    Group by d.DepartmentName and e.EmployeeNumber <=6 
    HAVING count(EmployeeNumber) > 1 ; 
+0

这不是被问到的。他指的是员工数量,而不是员工数量。此外,您的方式效率非常低,因为在接收到所有记录后应用“HAVING”。 – 2013-03-09 17:57:13

+0

除非我遗漏了某些东西,'e.EmployeeNumber <= 6'位可能放错了位置。 – 2013-03-11 09:03:44

相关问题