집 >데이터 베이스 >MySQL 튜토리얼 >SQL COUNT 집계에 0 개수를 어떻게 포함할 수 있나요?
SQL의 COUNT
함수는 집계된 결과에서 0 값을 생략하는 경우가 있습니다. 이 가이드는 기록을 계산할 때 0이 포함되도록 하는 방법을 보여줍니다.
두 개의 테이블 person
과 appointment
을 생각해 보세요. 한 사람이 여러 약속을 가질 수 있으며 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
약속이 없는 사람을 포함하려면 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 집계에 0 개수를 어떻게 포함할 수 있나요?의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!