Home [SQL] 取得件數 Count()
Post
Cancel

[SQL] 取得件數 Count()

效率: Count(1) > Count(欄位名) > Count(*)

  • count(1) 是絕對快,它只統計記錄條數,對條件下的表掃描一遍而已(包含NULL)
  • count(*) 是可能快,有主鍵的時候只掃主鍵,主鍵數等於記錄數(包含NULL)
  • count(欄位別) 回傳列數(不包含NULL)
  • count(主鍵)=count(1)
1
2
3
4
5
6
7
8
9
10
11
/*
count(1) 是絕對快,它只統計記錄條數,對條件下的表掃描一遍而已(包含NULL)
count(*) 是可能快,有主鍵的時候只掃主鍵,主鍵數等於記錄數(包含NULL)
count(欄位別) 回傳列數(不包含NULL)
count(主鍵) = count(1)
*/

--取得商品清單的件數
select count(1) from [商品清單] --count = 10,包含 null的資料
--「數位相機」的「販賣單價」的值為null,就不會被計算
select count([販賣單價]) from [商品清單] --count = 9,不包含 null的資料
This post is licensed under CC BY 4.0 by the author.