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 サイトの他の関連記事を参照してください。