ホームページ >データベース >mysql チュートリアル >COUNT(column) と COUNT(*): SQL ではどちらをいつ使用する必要がありますか?

COUNT(column) と COUNT(*): SQL ではどちらをいつ使用する必要がありますか?

Patricia Arquette
Patricia Arquetteオリジナル
2025-01-13 15:01:44515ブラウズ

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

*SQL の COUNT(column) と COUNT() の違いの詳細な説明**

SQL クエリでは、count() 関数がデータ集計に使用されますが、一般的に使用される 2 つの形式 count(column)count(*) の間には、微妙ですが重要な違いがあります。

COUNT(列): NULL 値を除外します

count(column) 構文は、指定された列内の NULL 以外の値の数をカウントし、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 列の 3 つの非 NULL 値のみをカウントしますが、count(id2)id2 列の 2 つの非 NULL 値をカウントします。

ただし、count(*)count(column) に置き換えると、次のクエリに示すように 7 になります。

<code class="language-sql">select count(*)
from #bla</code>
この場合、

には、NULL 値が含まれているかどうかに関係なく、テーブルの 7 行が含まれています。 NULL 以外の値のカウントと行のカウントのこの区別は、欠損データを含むデータセットを扱う場合に特に重要になります。 count(*)

以上がCOUNT(column) と COUNT(*): SQL ではどちらをいつ使用する必要がありますか?の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。

声明:
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。