bestsource

MySQL의 COUNT CASE 및 WHEN 문

bestsource 2023. 8. 22. 22:17
반응형

MySQL의 COUNT CASE 및 WHEN 문

MySQL 쿼리에서 COUNT CASE 및 WHEN 문을 사용하여 데이터가 NULL이고 하나의 MySQL 쿼리에서 NULL이 아닐 때 카운트하는 방법은 무엇입니까?

사용:

SELECT SUM(CASE 
             WHEN t.your_column IS NULL THEN 1
             ELSE 0
           END) AS numNull,
       SUM(CASE 
             WHEN t.your_column IS NOT NULL THEN 1
             ELSE 0
           END) AS numNotNull
  FROM YOUR_TABLE t

그러면 전체 테이블에 대한 NULL이 아닌 NULL 열이 요약됩니다.필요에 따라 GROUP BY 조항이 필요할 수 있습니다.

COUNT가 null이 아닌 값만 카운트한다는 사실을 이용할 수 있습니다.

SELECT COUNT(IFNULL(t.your_column, 1)) AS numNull,
       COUNT(t.your_column) AS numNotNull
  FROM YOUR_TABLE t

또 다른 접근법은 논리적 조건이 숫자 0과 1로 평가된다는 사실을 사용하는 것입니다. 따라서 이것도 작동합니다.

SELECT IFNULL(SUM(t.your_column IS NULL), 0) AS numNull,
       IFNULL(SUM(t.your_column IS NOT NULL), 0) AS numNotNull
  FROM YOUR_TABLE t

선택한 행이 없는 경우(즉, 테이블이 비어 있거나 조건이 모든 행을 제외하는 경우) SUM이 NULL을 반환합니다. 이는 IFNULL 문에 대한 이유입니다.

언급URL : https://stackoverflow.com/questions/5045124/count-case-and-when-statement-in-mysql

반응형