ホームページ >データベース >mysql チュートリアル >SQL COUNT 集計にゼロカウントを含めるにはどうすればよいですか?

SQL COUNT 集計にゼロカウントを含めるにはどうすればよいですか?

Linda Hamilton
Linda Hamiltonオリジナル
2025-01-08 18:22:42301ブラウズ

How Can I Include Zero Counts in SQL COUNT Aggregates?

SQL COUNT 集計でのゼロの予約カウントの処理

SQL の COUNT 関数は、集計結果からゼロ値を省略することがあります。 このガイドでは、レコードをカウントするときにゼロカウントが確実に含まれるようにする方法を説明します。

personappointment という 2 つのテーブルについて考えます。 1 人が複数の予定を持つことができ、appointment テーブルには person_id 列が含まれます。

問題:

単純な GROUP BY クエリでは、予約のない人を見逃してしまう可能性があります:

<code class="language-sql">SELECT person_id, COUNT(person_id) AS "number_of_appointments"
FROM appointment
GROUP BY person_id;</code>

解決策: 左結合

予約がゼロの人を含めるには、LEFT JOIN:

を使用します。
<code class="language-sql">SELECT p.person_id, COUNT(a.person_id) AS "number_of_appointments"
FROM person p
LEFT JOIN appointment a ON p.person_id = a.person_id
GROUP BY p.person_id;</code>

説明:

  • LEFT JOIN は、person テーブル内の一致に関係なく、appointment テーブル (左側のテーブル) のすべての行が結果に含まれることを保証します。
  • 人に予定がない場合、COUNT(a.person_id) は 0 (COUNT(*) の場合のように NULL ではありません) を返します。
  • GROUP BY p.person_id は結果を個人 ID ごとにグループ化し、ゼロ予約数を正確に反映します。

このアプローチでは、関連付けられた予定のない個人も含めた完全なカウントが保証されます。

以上がSQL COUNT 集計にゼロカウントを含めるにはどうすればよいですか?の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。

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