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

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

Susan Sarandon
發布: 2025-01-13 15:11:43
原創
771 人瀏覽過

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中文網其他相關文章!

來源:php.cn
本網站聲明
本文內容由網友自願投稿,版權歸原作者所有。本站不承擔相應的法律責任。如發現涉嫌抄襲或侵權的內容,請聯絡admin@php.cn
作者最新文章
熱門教學
更多>
最新下載
更多>
網站特效
網站源碼
網站素材
前端模板