sql >> データベース >  >> RDS >> Mysql

MySQLは、UPDATE/DELETEを介して重複データレコードを統合します

    これは単なる予測です。テーブルを更新したり、一部のデータを削除したりすることはありません。

    SELECT  MIN(ID) ID,
            Username,
            MAX(Red) max_Red,
            MAX(Green) max_Green,
            MAX(Yellow) max_Yellow,
            MAX(Blue) max_Blue,
            MAX(Orange) max_Orange,
            MAX(Purple) max_Purple
    FROM    Colors
    GROUP   BY Username
    

    更新

    これらのレコードを本当に削除したい場合は、レコードを削除する前に、まずUPDATEステートメントを実行する必要があります

    UPDATE  Colors a
            INNER JOIN
            (
                SELECT  MIN(ID) min_ID,
                        Username,
                        MAX(Red) max_Red,
                        MAX(Green) max_Green ,
                        MAX(Yellow) max_Yellow,
                        MAX(Blue) max_Blue,
                        MAX(Orange) max_Orange,
                        MAX(Purple) max_Purple
                FROM    Colors
                GROUP   BY Username
            ) b ON a.ID = b.Min_ID 
    SET     a.Red = b.max_Red,
            a.Green = b.max_Green,
            a.Yellow = b.max_Yellow,
            a.Blue = b.max_Blue,
            a.Orange = b.max_Orange,
            a.Purple = b.max_Purple
    

    その後、レコードを削除できます

    DELETE  a
    FROM    Colors a
            LEFT JOIN
            (
                SELECT  MIN(ID) min_ID,
                        Username
                FROM    Colors
                GROUP   BY Username
            ) b ON a.ID = b.Min_ID 
    WHERE   b.Min_ID  IS NULL
    


    1. OracleDB-入力番号を正確な長さに設定

    2. LIKEでワイルドカードをエスケープする

    3. OracleSQLで日付別にグループ化されたデータ

    4. Rails開発-「localhost」のMySQLサーバーに接続できません(10061)