首頁 >資料庫 >mysql教程 >COUNT(column) 與 COUNT(*):何時應該在 SQL 中使用 Which?

COUNT(column) 與 COUNT(*):何時應該在 SQL 中使用 Which?

Patricia Arquette
Patricia Arquette原創
2025-01-13 15:01:44553瀏覽

COUNT(column) vs. COUNT(*): When Should I Use Which in SQL?

*SQL中COUNT(column)與COUNT()的差異詳解**

在SQL查詢中,count()函數用於資料聚合,但count(column)count(*)兩種常用形式之間存在細微卻重要的差異。

COUNT(column):排除NULL值

count(column)語法統計指定列中非NULL值的個數,有效忽略列值為NULL的行。當需要確定列中非空值的個數時,此特性非常有用。

*COUNT():包含NULL值**

相較之下,count(*)統計結果集中的行數,包含包含NULL值的行。與count(column)不同,它將NULL視為有效計數項。當需要取得總行數,而不管特定列是否包含缺失資料時,此特性非常有用。

範例說明差異

考慮一個名為#bla的表,包含以下記錄:

<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)</code>

使用count(column)執行以下查詢:

<code class="language-sql">select count(id),count(id2)
from #bla</code>

結果為:

<code>3   2</code>

其中,count(id)僅統計id列中的三個非NULL值,而count(id2)統計id2列中的兩個非NULL值。

但是,用count(*)替換count(column),結果為7,如下查詢所示:

<code class="language-sql">select count(*)
from #bla</code>

在這種情況下,count(*)包含表中的七行,無論它們是否包含NULL值。在處理包含缺失資料的dataset時,這種統計非NULL值和統計行的差異變得尤為重要。

以上是COUNT(column) 與 COUNT(*):何時應該在 SQL 中使用 Which?的詳細內容。更多資訊請關注PHP中文網其他相關文章!

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