ホームページ > データベース > 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(

) に置き換えます

クエリ内の 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 である 2 行を含む、7 行すべてをカウントします。 COUNT(id) 列は、id が NULL ではない行を 3 行のみカウントしますが、COUNT(id2) 列は、id2 が NULL ではない行を 2 行カウントします。

以上がCOUNT(*) と COUNT(Column): SQL 行カウントの違いは何ですか?の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。

ソース:php.cn
このウェブサイトの声明
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。
著者別の最新記事
人気のチュートリアル
詳細>
最新のダウンロード
詳細>
ウェブエフェクト
公式サイト
サイト素材
フロントエンドテンプレート