簡單的查詢我公司員工的表,該表由兩列組成:員工和DepartmentID的如下與具有運營商
|Employee | DepartmentId
-------------------------
| e1 | 1
| e2 | 1
| e3 | 1
| e4 | 2
| e5 | 2
| e6 | 3
| e7 | 3
| e8 | 3
| e9 | 4
| e10 | 5
| e11 | 6
我想選擇有兩個以上的員工提供簡單的查詢部門。想到以下內容:
SELECT Department,
COUNT(Employee) as Quantity
FROM Employees
GROUP BY Department
HAVING (Quantity > 3)
ORDER BY Department
但在執行期間它抱怨無效的列名稱(數量)。我敢肯定,使用聚合函數兩次(select count()...有count())是不正確的。我錯過了什麼嗎? p.s. 「直白」 的解決方案是我猜
SELECT Department
FROM (SELECT Department, COUNT(Employee) AS Quantity
FROM Employees
GROUP BY Department)
WHERE Quantity > 5
對於什麼數據庫?有些允許在GROUP BY和HAVING中使用列別名,而另一些則不允許。 – 2011-03-02 18:53:42
最好使用COUNT(*),因爲它允許查詢管理者選擇要計數的字段/索引。 – 2011-03-02 19:14:37