ホームページ > データベース > mysql チュートリアル > SQL 集計関数は、NULL 値を持つ複数の行を 1 つの行にどのようにマージできますか?

SQL 集計関数は、NULL 値を持つ複数の行を 1 つの行にどのようにマージできますか?

Barbara Streisand
リリース: 2024-12-28 06:12:14
オリジナル
529 人が閲覧しました

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

目標は、これらの行を 1 つの行に結合する SELECT 操作:

FK Field1 Field2
3 ABC DEF

Aggregate関数の解決策

集計関数を使用して、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 値を持つ複数の行を 1 つの行にどのようにマージできますか?の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。

ソース:php.cn
このウェブサイトの声明
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。
著者別の最新記事
人気のチュートリアル
詳細>
最新のダウンロード
詳細>
ウェブエフェクト
公式サイト
サイト素材
フロントエンドテンプレート