SQL 集計でのゼロ予約カウントの処理
標準 SQL COUNT
集計では、予約がゼロの個人を見逃す可能性があります。 解決策には、外部結合を使用してこれらのゼロカウントエントリを含めることが含まれます。
説明してみましょう:
このクエリは、個人ごとの予定をカウントしますが、予定のないものは除外します。
<code class="language-sql">SELECT person_id, COUNT(person_id) AS appointment_count FROM appointment GROUP BY person_id;</code>
予定がゼロの個人を含めるには、LEFT JOIN
テーブルを駆動テーブルとして person
を使用します。
<code class="language-sql">SELECT p.person_id, COUNT(a.person_id) AS appointment_count FROM person p LEFT JOIN appointment a ON p.person_id = a.person_id GROUP BY p.person_id;</code>
この LEFT JOIN
は、予定が存在しない NULL
に対して appointment.person_id
を返します。 COUNT
は NULL
値を無視し、それらの個人の予定がゼロであることを正しく報告します。
このアプローチは、外部結合がどのように機能するかを理解することに依存しています。 LEFT JOIN
は、右側のテーブル (person
) に一致する行がない場合でも、左側のテーブル (この場合は appointment
) のすべての行が確実に含まれるようにします。
外部結合と NULL
値の処理について詳しくは、次のようなリソースを参照してください。
以上がSQL COUNT 集計にゼロアポイントの結果を含めるにはどうすればよいですか?の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。