ホームページ  >  記事  >  データベース  >  COUNT(*) と COUNT(column_name): 違いは何ですか? それぞれをいつ使用する必要がありますか?

COUNT(*) と COUNT(column_name): 違いは何ですか? それぞれをいつ使用する必要がありますか?

Patricia Arquette
Patricia Arquetteオリジナル
2024-11-17 22:49:02181ブラウズ

COUNT(*) vs. COUNT(column_name): What's the Difference and When Should You Use Each?

COUNT(*) と COUNT(column_name) の違いを理解する

SQL クエリを使用する場合、次の違いを理解することが重要です。 COUNT(*) および COUNT(column_name) により正確さを確保します。 results.

COUNT(*)

COUNT(*) は、NULL 値が含まれているかどうかに関係なく、結果セット内のすべての行をカウントします。これは、クエリ条件を満たすすべての行を考慮するため、最も包括的な数です。

COUNT(column_name)

COUNT(column_name) は、指定された列が NULL ではありません。この関数は、指定された列の欠損値を持つ行を無視します。

パフォーマンスへの影響

COUNT() がある場合、COUNT(column_name) よりも計算量が多くなる可能性があります。テーブルには NULL 値が多数あります。 COUNT() は関係なく各行をチェックする必要があるため、このようなシナリオではパフォーマンスが遅くなる可能性があります。

COUNT(*) の代替

COUNT(1) は次のとおりです。 COUNT(*) の代わりに、合計行数も返します。ただし、他の列の値に関係なく、常に NULL 以外の値に評価されます。

実験的デモンストレーション

結果の違いを説明するために、次の表を考慮してください。クエリ:

CREATE TABLE table1 (x INT NULL);
INSERT INTO table1 (x) VALUES (1), (2), (NULL);
SELECT
    COUNT(*) AS a,
    COUNT(x) AS b,
    COUNT(1) AS c
FROM table1;

結果:

a   b   c
3   2   3

ご覧のとおり、COUNT() はすべての行をカウントするため 3 を返しますが、COUNT( x) は、NULL 値の行を除いて 2 を返します。 COUNT(1) は COUNT() と区別できませんが、やはり 3 を返します。

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

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