sql >> Databáze >  >> RDS >> Mysql

UNPIVOT mysql data do jiné tabulky

Musíte UNPIVOT vaše data. MySQL k tomu nemá vestavěnou funkci, takže budete muset použít více dotazů.

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 zde může způsobit problémy. Podle toho, jak to máš definované. Pokud je vygenerován automaticky, můžete jej odstranit z INSERT a nechat jej vygenerovat automaticky. Protože budete mít řádky pro všechny měsíce se stejným ID , musíte tento scénář zvládnout.




  1. Převést „datetime2“ na „datetime“ v SQL Server (příklady T-SQL)

  2. MySQL Server na MAMP-Windows se nespustí

  3. Vytváření aktivačních událostí auditu na serveru SQL Server

  4. Jak převést desítkové na šestnáctkové pomocí TO_CHAR() v Oracle