Mysql
 sql >> Datenbank >  >> RDS >> Mysql

UNPIVOT mysql-Daten in andere Tabelle

Sie müssen UNPIVOT deine Daten. MySQL hat dafür keine eingebaute Funktion, also müssen Sie mehrere Abfragen verwenden.

INSERT INTO `monthlydata` (`id`, `year`, `monthName`, `stat_id`, `cat_id`, `data`) VALUES
SELECT id, year, 'January', stat_id, cat_id, January
    FROM monthly WHERE monthName = 'January'
UNION ALL 
SELECT id, year, 'February', stat_id, cat_id, February
    FROM monthly WHERE monthName = 'February'
UNION ALL 
SELECT id, year, 'March', stat_id, cat_id, March
    FROM monthly WHERE monthName = 'March'
.....

ID Spalte hier könnte Probleme verursachen. Je nachdem, wie Sie es definiert haben. Wenn es automatisch generiert wird, können Sie es aus dem INSERT entfernen und es automatisch generieren lassen. Da Sie Zeilen für alle Monate mit derselben ID haben , müssen Sie mit diesem Szenario umgehen.