Mysql
 sql >> база данни >  >> RDS >> Mysql

UNPIVOT mysql данни към друга таблица

Трябва да UNPIVOT вашите данни. MySQL няма вградена функция за това, така че ще трябва да използвате множество заявки.

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 колоната тук може да предизвика проблеми. В зависимост от това как сте го дефинирали. Ако е автоматично генериран, тогава можете да го премахнете от INSERT и да го оставите да се генерира автоматично. Тъй като ще имате редове за всички месеци със същия ID , трябва да се справите с този сценарий.




  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 да конкатенира низове с ||

  2. Как да извлечете качени файлове с помощта на php

  3. Изчисляване на общата продължителност на времето в MySQL

  4. Отчетите на MySQL Workbench не са валидни на тази позиция за тази грешка във версията на сървъра

  5. PHP с грешка в MySQL 8.0+:Сървърът поиска метод за удостоверяване, неизвестен на клиента