*SQL の COUNT() と COUNT(Column) の違い**
SQL では、集計関数 COUNT(*) と COUNT(column) は、テーブル内のデータの行と列をそれぞれカウントするための異なるメカニズムを提供します。
COUNT() 指定されたテーブル内の NULL 値を除くすべての行をカウントします。つまり、COUNT() は、どの列にデータが含まれているかに関係なく、NULL 以外の行の合計数を返します。
一方、COUNT(column) は、指定された列が NULL ではない行の数をカウントします。これにより、特定の列の非 NULL 値を選択的にカウントできるようになります。
*COUNT(列)** を COUNT(
) に置き換えますクエリ内の COUNT(column_name) のすべてのインスタンスを COUNT(*) に置き換えると、次のような影響があります:
デモ
この違いを説明するために、元の質問で概説されたシナリオを再現してみましょう:
<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 サイトの他の関連記事を参照してください。