>데이터 베이스 >MySQL 튜토리얼 >SQL COUNT 집계에 0 개수를 어떻게 포함할 수 있나요?

SQL COUNT 집계에 0 개수를 어떻게 포함할 수 있나요?

Linda Hamilton
Linda Hamilton원래의
2025-01-08 18:22:42302검색

How Can I Include Zero Counts in SQL COUNT Aggregates?

SQL COUNT 집계에서 0개의 약속 카운트 처리

SQL의 COUNT 함수는 집계된 결과에서 0 값을 생략하는 경우가 있습니다. 이 가이드는 기록을 계산할 때 0이 포함되도록 하는 방법을 보여줍니다.

두 개의 테이블 personappointment을 생각해 보세요. 한 사람이 여러 약속을 가질 수 있으며 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 JOINperson 테이블의 일치 여부에 관계없이 appointment 테이블(왼쪽 테이블)의 모든 행이 결과에 포함되도록 합니다.
  • 사람에게 약속이 없으면 COUNT(a.person_id)는 0을 반환합니다(COUNT(*)과 마찬가지로 NULL이 아님).
  • GROUP BY p.person_id 약속이 없는 횟수를 정확하게 반영하여 개인 ID별로 결과를 그룹화합니다.

이 접근 방식은 관련 약속이 없는 개인을 포함하여 완전한 수를 보장합니다.

위 내용은 SQL COUNT 집계에 0 개수를 어떻게 포함할 수 있나요?의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!

성명:
본 글의 내용은 네티즌들의 자발적인 기여로 작성되었으며, 저작권은 원저작자에게 있습니다. 본 사이트는 이에 상응하는 법적 책임을 지지 않습니다. 표절이나 침해가 의심되는 콘텐츠를 발견한 경우 admin@php.cn으로 문의하세요.