Mysql
 sql >> Teknologi Basis Data >  >> RDS >> Mysql

MySQL mengkonsolidasikan catatan data duplikat melalui UPDATE / DELETE

Ini hanya proyeksi. Itu tidak memperbarui tabel atau menghapus beberapa data.

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

PERBARUI

jika Anda benar-benar ingin menghapus catatan itu, Anda harus menjalankan pernyataan UPDATE terlebih dahulu sebelum Anda dapat menghapus catatan

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

Kemudian Anda sekarang dapat menghapus catatan,

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. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. masalah dengan OneToMany termasuk klausa filter di musim semi jpa

  2. Bagaimana saya bisa mendapatkan kunci asing dari tabel di mysql

  3. MySQL menambahkan bidang ke Enum

  4. bagaimana cara memblokir insert record duplikat di node mysql untuk relasi banyak-ke-banyak?

  5. Kolom pembaruan MySQL berdasarkan baris sebelumnya (kolom yang sama)