我想寫一個查詢來從同一個表中檢索COUNT(of employees with the salary=1000)
和COUNT(of total no of employees)
。 有什麼想法?計數問題()
計數問題()
回答
select
count(*) totalCount,
count(case when salary = 1000 then 1 else NULL end) specialCount
from Employees
COUNT計數非空行。
SELECT COUNT(EmployeeID) as 'Total Employees',
(SELECT COUNT(EmployeeID) FROM Employees WHERE Salary = 1000) as 'Salaried'
FROM Employees
你會查詢同一個表兩次嗎? – 2010-07-08 19:41:59
在選擇列表中使用子查詢效率低於單個查詢,如[@Tom H. answer](http://stackoverflow.com/questions/3207157/problem-with-count/3207303#3207303)。使用'SET SHOWPLAN_ALL ON'這個查詢TotalSubtreeCost比@Tom H的單個查詢高出近50%。answer – 2010-07-08 19:51:24
select count(*) as employeeCount,
(select count(*) from employee where salary=1000) as bigmoneyEmployeeCount
from employee
另一種方法:
SELECT
COUNT(*) AS total_employees,
SUM(CASE WHEN salary = 1000 THEN 1 ELSE 0 END) AS employees_with_1000_salary
FROM
Employees
+1,我該怎麼做 – 2010-07-08 19:47:16
- 1. 問題計數
- 2. 計數問題
- 3. 計數器問題
- 4. SQL計數問題
- 5. MySQL計數問題
- 6. Excel計數問題?
- 7. MySQL計數問題
- 8. PHP計數問題
- 9. 計數問題C#
- 10. MySQL計數問題
- 11. 數據庫設計問題(或問題)
- 12. LINQ to XML問題計數問題
- 13. 數量計數問題
- 14. MYSQL與計數或有計數問題
- 15. 數據庫設計問題
- 16. 計數記錄問題
- 17. PostgreSQL中的計數問題
- 18. 問題與[陣列計數]
- 19. 數據包計時問題
- 20. Prolog的計數器問題
- 21. MySQL的計數問題
- 22. 數據庫設計問題
- 23. 數據庫設計問題
- 24. 數據庫設計問題
- 25. 計數遊戲問題
- 26. 數據庫設計問題:
- 27. 倒數計時器問題
- 28. 計數有什麼問題
- 29. 數據庫設計問題
- 30. 數據庫設計問題
這產生了與[@Tom H的答案]相同的執行計劃。 http://stackoverflow.com/questions/3207157/problem-with-count/3207303#3207303)。另外,你真的不需要'else NULL',但刪除它不會改變執行計劃。 – 2010-07-08 19:57:25
@KM:只是把它放在這裏,因爲大多數人似乎並不知道COUNT實際計數的是什麼:)尤其是計數(*)等於計數(1),但如果列可爲空,則不計數(列)。 – 2010-07-08 20:01:57
+1,@ToxicAvenger,我同意,大部分不懂COUNT。你的答案與[@Tom H]的答案一樣快(http://stackoverflow.com/questions/3207157/problem-with-count/3207303#3207303),並且比在子查詢中使用子查詢更好選擇列表! – 2010-07-08 20:12:37