sqlで重複データを結合する方法は?
SQLのGROUP BYと集計関数を使用して、重複データを統合することができます。
具体な手順は以下の通りです。
- 適切なテーブルを選択するためにSELECTステートメントを使用し、マージするフィールドを指定するためにGROUP BY句を使用します。
- 需要合算するフィールドに対して、SUM、COUNT、AVGなどの集約関数を使用するSELECT文を作成します。
- HAVING句を使用して、結合する必要があるデータをフィルタリングします。
- 新しいテーブルに統合されたデータを挿入するためにINSERT INTO文を使用するか、元のテーブルのデータを更新するためにUPDATE文を使用することができます。
以下は1つの例です:
「orders」というテーブルがあり、注文情報が含まれています。注文番号、製品名、注文数量などが含まれます。今、同じ製品の注文数量を結合する必要があります。
SELECT product_name, SUM(order_quantity) AS total_quantity
FROM orders
GROUP BY product_name
HAVING COUNT(*) > 1;
上記のステートメントは、全ての製品名が同じレコードを選択し、その注文数量の合計を計算します。
新しいテーブルにマージされたデータを挿入する必要がある場合は、INSERT INTOステートメントを使用できます。
INSERT INTO new_table (product_name, total_quantity)
SELECT product_name, SUM(order_quantity) AS total_quantity
FROM orders
GROUP BY product_name
HAVING COUNT(*) > 1;
元の表のデータを更新する必要がある場合は、UPDATE文を使用できます。
UPDATE orders
SET order_quantity = (SELECT SUM(order_quantity) AS total_quantity
FROM orders AS o
WHERE o.product_name = orders.product_name
GROUP BY product_name
HAVING COUNT(*) > 1)
WHERE EXISTS (SELECT 1
FROM orders AS o
WHERE o.product_name = orders.product_name
GROUP BY product_name
HAVING COUNT(*) > 1);
上記は重複データを統合する基本的な操作であり、具体的な実装方法は状況に応じて調整する必要があります。