Mysql
 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. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. Поставете резултатите от заявката на командния ред на mysql в променлива на bash скрипт

  2. Защо две едновременни оператори за изтриване + вмъкване се блокират на празна таблица?

  3. Възможно ли е да се използва Couch DB или MySql или друга DB в Android?

  4. Копирайте Microsoft SQL в други бази данни

  5. Как да извършите редактиране в съединителна таблица