嗨,我有一個表與狀態列。如何使用SQL獲取記錄總數,帶有傳遞狀態的記錄總數和帶有失敗狀態的記錄總數?選擇查詢以獲得SQL Server中的總記錄數
0
A
回答
1
我會寫類似
select
Count(*) as TotalRecords,
Sum(case where status = 'Pass' then 1 else 0 end) as PassRecords,
Sum(case where status = 'Fail' then 1 else 0 end) as FaileRecords
from Table
2
怎麼是這樣的:
SELECT Status, COUNT(*)
FROM dbo.YourTable
GROUP BY Status WITH ROLLUP
這會工作,如果這兩個狀態(及格,不及格)是唯一的狀態(否則你需要一個WHERE Status IN ('fail', 'pass')
條件還) - 和WITH ROLLUP
也將給你行的總數(以輸出與Status = NULL
)所有狀態
0
您可以用case語句和聚合做到這一點:
select count(*), sum(case when status = 'pass' then 1 else 0 end) as pass,
sum(case when status = 'fail' then 1 else 0 end) as fail
from t
0
一對夫婦的其他替代品(SQL服務器2008+)查詢:
DECLARE @foo TABLE([status] CHAR(4));
INSERT @foo SELECT 'pass'
UNION ALL SELECT 'pass'
UNION ALL SELECT 'fail';
-- option #1:
SELECT [status], c = COUNT(*)
FROM @foo
GROUP BY GROUPING SETS(([status]),());
-- option #2:
SELECT [status], c = COUNT(*)
FROM @foo
GROUP BY [status]
UNION ALL
SELECT NULL, COUNT(*) OVER() FROM @foo;
相關問題
- 1. SQL查詢選擇記錄
- 2. SQL查詢記錄總數
- 3. SQL查詢選擇最近的記錄以及空記錄
- 4. 在SQL Server查詢中動態選擇記錄範圍
- 5. SQL Server:添加總計數以選擇
- 6. 選擇總計只返回SQL Server中的一條記錄
- 7. SQL查詢來選擇總
- 8. 查詢SQL Server中的重複記錄?
- 9. SQL Server:選擇子查詢結果的總和,ConnectWise數據庫
- 10. 從選擇查詢中計數記錄。
- 11. 在SQL查詢中選擇除了最大記錄以外的所有記錄
- 12. SQL Server查詢選擇
- 13. 爲sql server選擇查詢
- 14. 在SQL Server表中選擇記錄
- 15. SQL查詢獲得表A和表B中的記錄數
- 16. SQL查詢,其中0,使用2臺獲得的記錄數
- 17. SQL查詢獲得列總數
- 18. 總SQL Server查詢
- 19. SQL Server查詢 - 選擇ID計數()
- 20. 查詢來選擇記錄
- 21. Linq查詢選擇記錄
- 22. 獲取的SQL查詢記錄總數不考慮限制
- 23. SQL查詢選擇
- 24. SQL查詢得到記錄數
- 25. 如何在mongodb中查詢以獲得明顯的記錄數
- 26. 從選擇查詢中選擇記錄後更新查詢
- 27. 使用一個查詢在sql server中選擇總和
- 28. 查詢SQL Server中使用CTE獲得總和,並加入
- 29. 如何在SQL Server 2008中選擇以前的記錄
- 30. SQL查詢獲取記錄
我猜想有可能是在狀態,我們沒有其他的值關心 – automatic 2012-07-26 18:11:11