sql >> Database >  >> RDS >> Mysql

UNPIVOT mysql-gegevens naar andere tabel

U moet UNPIVOT jouw gegevens. MySQL heeft geen ingebouwde functie om dat te doen, dus u moet meerdere query's gebruiken.

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 kolom hier kan problemen veroorzaken. Afhankelijk van hoe je het hebt gedefinieerd. Als het automatisch wordt gegenereerd, kunt u het uit de INSERT verwijderen en het automatisch laten genereren. Omdat je voor alle maanden rijen hebt met dezelfde ID , moet u dat scenario afhandelen.




  1. ScaleGrid DBaaS genomineerd voor de Cloud Excellence Awards 2018

  2. Hoe % te ontsnappen in een query met behulp van python's sqlalchemy's execute() en pymysql?

  3. Fout:de methode of bewerking is niet geïmplementeerd. tijdens het steigeren van MYSQL-database

  4. Hoe koppel ik een tabel aan veel verschillende tabellen?