ホームページ > データベース > mysql チュートリアル > 集計関数を使用して複数の SQL 行を 1 つの行にマージするにはどうすればよいですか?

集計関数を使用して複数の SQL 行を 1 つの行にマージするにはどうすればよいですか?

Linda Hamilton
リリース: 2024-12-23 12:53:10
オリジナル
346 人が閲覧しました

How Can I Merge Multiple SQL Rows into a Single Row Using Aggregate Functions?

SQL での行の結合

データベースを使用する場合、複数の行のデータを 1 つのレコードに結合する必要がある状況が発生することがあります。 。 「Field1」と「Field2」という 2 つのフィールドを含む次のテーブルについて考えてみましょう:

FK Field1 Field2
3 ABC NULL
3 NULL DEF

目的は、次の結合データを取得することです:

FK Field1 Field2
3 ABC DEF

これらの行を結合するには、集計します。機能を活用することができます。 MAX などの集計関数は NULL 値を無視します。 MAX 集計関数を「フィールド 1」と「フィールド 2」の両方に適用すると、各グループの NULL 以外の最大値を取得し、データを効果的に 1 つの行に結合できます。

次のクエリは、このアプローチを示しています。 :

SELECT
    FK,
    MAX(Field1) AS Field1,
    MAX(Field2) AS Field2
FROM
    table1
GROUP BY
    FK;
ログイン後にコピー

このクエリは、行を「FK」列でグループ化し、MAX 集計関数を「フィールド 1」と「フィールド 2」に適用します。結果は、各行が元の分割行から結合されたデータを表すテーブルになります。

例として、次のテスト データを考えてみましょう:

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

集計関数を利用すると、複数の行のデータを単一の結合された 1 つの行に効果的にマージできます。記録します。

以上が集計関数を使用して複数の SQL 行を 1 つの行にマージするにはどうすればよいですか?の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。

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