[SQL ] 在一次全表掃描中,count不同條件的欄位
資料庫名稱:SQL Server
資料庫版本:均可
內容/問題描述:
有辦法在一次Table scan中,就做掉多個條件欄位的統計嗎?
例如,我要統計某次考試中,每個分數區間的總人數,
如 60~69、70~79、80~89、90~100 區間的個別人數。
邏輯上來說應該掃一次、分別統計就夠了。
但SQL語法我只能寫成4次的table scan,像這樣
SELECT(
SELECT COUNT(*)
FROM [Test]
WHERE [Test].[Score] >= 90 && [Test] <= 100) AS [Up90Count],
SELECT COUNT(*)
FROM [Test]
WHERE [Test].[Score] >= 80 && [Test] < 90) AS [Up80Count],
(略)
這樣是跑4個table scan。
當然可以把Score加Index,但因為這邊舉的只是最簡單的例子。
有時情況並不能把所有條件參數都Index。
--
※ 發信站: 批踢踢實業坊(ptt.cc), 來自: 220.135.179.10
※ 文章網址: http://www.ptt.cc/bbs/Database/M.1407818909.A.731.html
→
08/12 12:54, , 1F
08/12 12:54, 1F
→
08/12 12:55, , 2F
08/12 12:55, 2F
→
08/12 14:42, , 3F
08/12 14:42, 3F
→
08/12 15:01, , 4F
08/12 15:01, 4F
→
08/12 15:25, , 5F
08/12 15:25, 5F
→
08/12 15:26, , 6F
08/12 15:26, 6F
→
08/12 15:26, , 7F
08/12 15:26, 7F
→
08/12 15:29, , 8F
08/12 15:29, 8F
→
08/12 15:31, , 9F
08/12 15:31, 9F
→
08/12 15:32, , 10F
08/12 15:32, 10F
→
08/13 00:44, , 11F
08/13 00:44, 11F
→
08/13 00:44, , 12F
08/13 00:44, 12F
討論串 (同標題文章)