>데이터 베이스 >MySQL 튜토리얼 >SQL 집계 함수는 어떻게 NULL 값이 있는 여러 행을 단일 행으로 병합할 수 있습니까?

SQL 집계 함수는 어떻게 NULL 값이 있는 여러 행을 단일 행으로 병합할 수 있습니까?

Barbara Streisand
Barbara Streisand원래의
2024-12-28 06:12:14528검색

How Can SQL Aggregate Functions Merge Multiple Rows with NULL Values into a Single Row?

SQL에서 여러 행을 병합할 데이터 선택

아래 표시된 데이터가 있는 테이블을 고려하세요.

FK Field1 Field2
3 ABC NULL
3 NULL DEF

목표는 이러한 행을 단일 행으로 결합하는 SELECT 작업:

FK Field1 Field2
3 ABC DEF

집계 함수 해결 방법

집계 함수를 사용하면 NULL 값을 무시하고 일치하는 여러 행에서 NULL이 아닌 값을 결합할 수 있습니다. 다음은 이 접근 방식을 보여주는 쿼리입니다.

SELECT
    FK,
    MAX(Field1) AS Field1,
    MAX(Field2) AS Field2
FROM
    table1
GROUP BY
    FK;

이 쿼리에서는 MAX 집계 함수를 사용하여 FK로 그룹화된 행에서 Field1 및 Field2의 최대값을 선택합니다. NULL 값은 집계 함수에 의해 무시되므로 NULL이 아닌 값만 결합됩니다.

솔루션 테스트

제공된 테스트 데이터 사용:

CREATE TABLE table1 (FK int, Field1 varchar(10), Field2 varchar(10));

INSERT INTO table1 VALUES (3, 'ABC', NULL);
INSERT INTO table1 VALUES (3, NULL, 'DEF');
INSERT INTO table1 VALUES (4, 'GHI', NULL);
INSERT INTO table1 VALUES (4, 'JKL', 'MNO');
INSERT INTO table1 VALUES (4, NULL, 'PQR');

쿼리로 원하는 결과가 나옵니다.

FK Field1 Field2
3 ABC DEF
4 JKL PQR

위 내용은 SQL 집계 함수는 어떻게 NULL 값이 있는 여러 행을 단일 행으로 병합할 수 있습니까?의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!

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