SQL COUNT 集計: 結合によるゼロ結果の処理
データベース クエリでは、完全性を保つために、COUNT などの集計関数にゼロの結果を含める必要があることがよくあります。 これは、データの欠如が重大なシナリオに対処する場合に非常に重要です。
これを例で説明しましょう。 person
と appointment
という 2 つのテーブルがあるとします。 appointment
テーブルには、person_id
テーブルを参照する person
外部キーが含まれています。 私たちの目標は、まったく予約がない人も含め、各人の予約数をカウントすることです。
appointment
テーブルの単純な COUNT では、予定のある人の結果のみが表示されます。ゼロを含めるには、LEFT JOIN
.
SQL クエリ:
<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
テーブル (p
というエイリアス) のすべての行が結果セットに含まれることを保証します。 appointment
テーブル (a
というエイリアス) に一致するエントリがない場合、a.person_id
は NULL になります。 COUNT(a.person_id)
関数はこれを巧みに処理します。NULL 以外の値のみをカウントし、事実上、予約のない人のカウントは 0 になります。 p.person_id
でグループ化すると、各個人の個別のカウントが確実に取得されます。
このアプローチでは、データがまばらな場合やデータの欠如に意味がある場合でも、正確なレポートが保証されます。 これは、包括的なデータ分析にとって貴重な手法です。
以上がSQL 結合を使用して COUNT 集計にゼロの結果を含める方法の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。