Mysql
 sql >> Baza danych >  >> RDS >> Mysql

MySQL konsoliduje zduplikowane rekordy danych poprzez UPDATE / DELETE

To tylko projekcja. Nie aktualizuje tabeli ani nie usuwa niektórych danych.

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

AKTUALIZUJ

jeśli naprawdę chcesz usunąć te rekordy, musisz najpierw uruchomić instrukcję UPDATE, zanim będziesz mógł usunąć rekordy

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

Następnie możesz teraz usunąć rekordy,

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. MySQL, dwie tabele wyświetlające informacje z obu tabel

  2. Kopiowanie bazy danych MySQL na inny komputer

  3. Jak uzyskać ostatni dzień miesiąca w mysql, podając miesiąc i rok jako dane wejściowe?

  4. Jak upewnić się, że Twoja baza danych MySQL jest zabezpieczona?

  5. SET zmienną w instrukcji SELECT - MySQL