首頁 >資料庫 >mysql教程 >COUNT(*) 與 COUNT(Column):SQL 行計數有何不同?

COUNT(*) 與 COUNT(Column):SQL 行計數有何不同?

Susan Sarandon
Susan Sarandon原創
2025-01-13 15:11:43823瀏覽

COUNT(*) vs. COUNT(Column): What's the Difference in SQL Row Counting?

*SQL 中 COUNT() 與 COUNT(Column) 的差異**

在 SQL 中,聚合函數 COUNT(*) 和 COUNT(column) 分別提供用於計數表中資料行和列的不同機制。

COUNT() 統計指定表中的所有行,不包含 NULL 值。這意味著 COUNT() 傳回非 NULL 行的總數,而不管哪些欄位包含資料。

另一方面,COUNT(column) 統計指定列不為 NULL 的行數。這允許選擇性地統計特定列中的非 NULL 值。

*用 COUNT() 取代 COUNT(column)**

將查詢中所有 COUNT(column_name) 實例替換為 COUNT(*) 將產生以下影響:

  • 結果集將包含額外的一行,該行包含 column_name 的 NULL 值和表示該列中 NULL 值數量的計數。

示範

為了說明這種差異,讓我們重現原始問題中概述的場景:

<code class="language-sql">create table #bla(id int,id2 int)
insert #bla values(null,null)
insert #bla values(1,null)
insert #bla values(null,1)
insert #bla values(1,null)
insert #bla values(null,1)
insert #bla values(1,null)
insert #bla values(null,null)

select count(*),count(id),count(id2)
from #bla</code>

結果:

<code>7   3   2</code>

在此範例中,COUNT(*) 列統計所有七行,包括兩行 id 和 id2 都為 NULL 的行。 COUNT(id) 欄位僅統計 id 不為 NULL 的三行,而 COUNT(id2) 統計 id2 不為 NULL 的兩行。

以上是COUNT(*) 與 COUNT(Column):SQL 行計數有何不同?的詳細內容。更多資訊請關注PHP中文網其他相關文章!

陳述:
本文內容由網友自願投稿,版權歸原作者所有。本站不承擔相應的法律責任。如發現涉嫌抄襲或侵權的內容,請聯絡admin@php.cn