>  기사  >  데이터 베이스  >  COALESCE를 사용하여 MySQL의 SUM 함수에서 null 값을 어떻게 처리합니까?

COALESCE를 사용하여 MySQL의 SUM 함수에서 null 값을 어떻게 처리합니까?

DDD
DDD원래의
2024-11-02 08:47:29676검색

How do you handle null values in MySQL's SUM function with COALESCE?

COALESCE를 사용하여 MySQL의 SUM 함수에서 Null 값을 처리하는 방법

MySQL에서 SUM 계산을 수행할 때 다음과 같은 시나리오를 처리하기 어려울 수 있습니다. 지정된 기준을 충족하는 값이 없으므로 NULL 출력이 발생합니다. 이 문제를 해결하기 위해 MySQL은 NULL 값이 있는 경우 기본 반환 값을 지정하는 편리한 방법을 제공하는 COALESCE 함수를 제공합니다.

다음 MySQL 함수를 고려하세요.

SELECT SUM(Column_1)
FROM Table
WHERE Column_2 = 'Test'

Column_2의 항목에 'Test'라는 텍스트가 포함되어 있지 않으면 이 함수는 NULL을 반환합니다. 그러나 값이 없으면 NULL 대신 0을 반환하는 것이 더 나은 경우도 있습니다.

이를 달성하려면 아래 설명과 같이 SUM 계산 내에서 COALESCE 함수를 활용할 수 있습니다.

SELECT COALESCE(SUM(column),0)
FROM   table
WHERE  ...

COALESCE 함수에서 기본값으로 0을 지정함으로써 SUM 계산의 모든 NULL 값을 0으로 효과적으로 대체하여 결과가 항상 정수(SUM 기준을 충족하는 값이 없더라도).

추가 정보

COALESCE 함수는 다목적이며 합계에서 NULL 값을 처리하는 것 외에도 다양한 시나리오에서 사용할 수 있습니다. 계산. 이는 누락되거나 불완전한 데이터에 대한 대체 값을 제공해야 하는 상황에서 특히 유용합니다.

COALESCE의 사용법과 이점을 더 자세히 설명하려면 다양한 데이터 유형을 사용하는 다음 예제 테이블을 고려하세요.

  • foo: 숫자와 NULL 값 모두 포함
  • bar: null이 아닌 값만 포함 숫자
  • baz: NULL 값만 포함

이러한 테이블의 값 합계를 계산하는 쿼리에 COALESCE 함수를 사용하면 null이 있어도 일관된 결과를 보장할 수 있습니다.

SELECT  'foo'                   as table_name,
        'mixed null/non-null'   as description,
        21                      as expected_sum,
        COALESCE(SUM(val), 0)   as actual_sum
FROM    foo
UNION ALL

SELECT  'bar'                   as table_name,
        'all non-null'          as description,
        21                      as expected_sum,
        COALESCE(SUM(val), 0)   as actual_sum
FROM    bar
UNION ALL

SELECT  'baz'                   as table_name,
        'all null'              as description,
        0                       as expected_sum,
        COALESCE(SUM(val), 0)   as actual_sum
FROM    baz

이 쿼리의 결과는 다음과 같습니다. 다음은 다음과 같습니다.

TABLE_NAME DESCRIPTION EXPECTED_SUM ACTUAL_SUM
foo mixed null/non-null 21 21
bar all non-null 21 21
baz all null 0 0

결과에서 알 수 있듯이 COALESCE는 모든 값이 NULL인 baz 테이블에 대해 SUM 계산이 항상 0을 반환하도록 보장하고 foo 및 bar 테이블에 대해 예상 합계 21을 제공합니다.

위 내용은 COALESCE를 사용하여 MySQL의 SUM 함수에서 null 값을 어떻게 처리합니까?의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!

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