我想写一个查询来从同一个表中检索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. MySQL计数问题
- 3. 计数问题C#
- 4. 计数器问题
- 5. MySQL计数问题
- 6. PHP计数问题
- 7. MySQL计数问题
- 8. 数据库设计问题(或问题)
- 9. MYSQL与计数或有计数问题
- 10. MySQL查询计数问题
- 11. 与方面计数问题
- 12. 数据库设计问题
- 13. 数据库设计问题
- 14. MySQL的计数问题
- 15. 数据库设计问题
- 16. 数据库设计问题
- 17. Java计数器问题
- 18. 问题得到计数
- 19. 计数有什么问题
- 20. 数据库设计问题
- 21. 计数游戏问题
- 22. 过滤问题计数
- 23. 数据库设计问题
- 24. 倒数计时器问题
- 25. 微软SQL计数问题
- 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