ホームページ  >  記事  >  データベース  >  oracleのcount1とcount*の違い

oracleのcount1とcount*の違い

下次还敢
下次还敢オリジナル
2024-04-30 06:12:15650ブラウズ

Oracle の COUNT(1) と COUNT(*) の違いは次のとおりです。 COUNT(1) は null 値を無視し、空でない行のみをカウントします。 COUNT(*) は null 値を含むすべての行をカウントします。 ; どの関数を選択するかは、NULL 値の存在、パ​​フォーマンスまたは一貫性の優先順位によって決まります。

oracleのcount1とcount*の違い

Oracle の COUNT(1) と COUNT(*) の違い

Oracle では、COUNT(1) ) と COUNT(*) はどちらもテーブル内のレコード数を数えるために使用される集計関数ですが、それらの間には微妙な違いがあります。

COUNT(1)

  • NULL 以外の値を持つ行のみをカウントします。
  • テーブル内にnull値が存在する場合の誤カウントを防ぎます。
  • NULL 値を無視するため、COUNT(*) よりもわずかに高速に実行されます。

COUNT(*)

  • NULL 値を含むすべての行をカウントします。
  • テーブルに null 値がある場合でも、正確な数を返します。
  • null値が含まれるため、COUNT(1)より実行速度が若干遅くなる場合があります。

どれを選択しますか?

COUNT(1) または COUNT(*) の選択は、次の要因によって異なります:

  • NULL 値があるかどうか:null 値がある可能性がある場合テーブル値に NULL がある場合は、誤ったカウントを避けるために COUNT(1) を使用します。
  • パフォーマンス: 速度が重要であり、テーブルに NULL 値がないことが確実な場合は、COUNT(1) を使用できます。
  • 一貫性: NULL 値を含むすべての行にわたって一貫したカウントが必要な場合は、COUNT(*) を使用する必要があります。

次のデータを含む students という名前のテーブルがあるとします。

<code>| id | name | age |
|---|---|---|
| 1 | John | 20 |
| 2 | NULL | 25 |
| 3 | Mary | 22 |</code>

If クエリこのテーブルは COUNT(1) を使用しており、次の結果が返されます。

<code>SELECT COUNT(1) FROM students;
2</code>

これは、COUNT(1) が NULL 値を無視するためです。

COUNT(*) を使用してこのテーブルをクエリすると、次の結果が返されます。

<code>SELECT COUNT(*) FROM students;
3</code>

これは、COUNT(*) に NULL 値が含まれているためです。

以上がoracleのcount1とcount*の違いの詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。

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