Q
子查詢問題
0
A
回答
1
如果您正在使用SQL Server
版本或以上,這裏是另一個可能的方式讓員工按部門計數。 。
SELECT DPT.DepName
, EMP.EmpCount
FROM dbo.Department DPT
CROSS APPLY (
SELECT COUNT(EMP.DepartId) AS EmpCount
FROM dbo.Employees EMP
WHERE EMP.DepartId = DPT.DepartId
) EMP
ORDER BY DPT.DepName
希望有所幫助。
樣品測試查詢輸出:
1
我會使用outer join
而不是子查詢。
SELECT d.DepName, COUNT(e.Name)
FROM Department d
LEFT JOIN Employees e ON e.DepartID = d.DepartID
GROUP BY d.DepartID, d.DepName
1
SELECT d.DepName, COUNT(e.Name)
FROM Department d
LEFT JOIN Employees e
ON d.DepartID = e.DepartID
GROUP BY d.DepName
+0
這假設部門名稱是唯一的。 'DepartID'似乎是一個更好的事情'分組' – 2011-05-25 16:31:03
1
無需子查詢。
SELECT dep.DepName, COUNT(emp.Name)
FROM DepName dep
LEFT OUTER JOIN Employees emp ON dep.DepartID = emp.DepartID
GROUP BY dep.DepName
+0
這假設部門名稱是唯一的。 ''bypartid'似乎是一件更好的事情 – 2011-05-25 16:32:18
1
SELECT COUNT(DISTINCT Name) FROM
Department AS d, Employees AS e
WHERE d.DepartID=e.DepartID AND d.DepName = '$thename'
1
,並避免使用group by
,節省您的queryplan排序操作:
SELECT
Department.DepName,
(SELECT COUNT(*)
FROM Employees
WHERE Employees.DepartID = Department.DepartID)
FROM
Department
相關問題
- 1. 子查詢問題
- 2. 子查詢問題
- 3. 子查詢問題
- 4. 子查詢問題
- 5. MYSQL查詢問題和子查詢
- 6. MySQL查詢/子查詢問題
- 7. SQL查詢簡單問題子查詢
- 8. SQL Server查詢/子查詢的問題
- 9. MySQL子查詢/查詢問題
- 10. MySQL查詢分組子查詢問題
- 11. Sql子查詢問題
- 12. SQL查詢子問題
- 13. Sqlite子查詢的問題
- 14. SQL子查詢問題
- 15. MYSQL - 問題與子查詢
- 16. 問題與子查詢
- 17. SQL子查詢問題
- 18. T-SQL子查詢問題
- 19. 問題:MySQL的子查詢
- 20. 問題與子查詢
- 21. 問題與子查詢
- 22. C#LInq子查詢問題
- 23. SQL子查詢問題
- 24. mysql子查詢問題
- 25. MySQL的子查詢問題
- 26. Mysql的子查詢問題
- 27. SQL子查詢問題
- 28. 問題與MySQL子查詢
- 29. Sql子查詢問題
- 30. 子查詢保理問題
子查詢較好,避免了排序上DepName – Magnus 2011-05-25 18:11:37
@Magnus機會是'DepartID'將是PK /聚簇索引鍵,也不會需要任何形式。編輯:這是一個警察的答案,雖然有趣的一般點我會做一些測試。 – 2011-05-25 18:17:55
我想,既然你是由DepartID和DepName分組而不是隻有DepName – Magnus 2011-05-25 18:26:52