Транспонировать строки запроса mysql в столбцы
У меня есть простой запрос, который дает следующие результаты:
SELECT month,transporttype,count(transporttype) as loads
from deliveries
group by month,transporttype
Я хотел бы перенести строки в столбцы.
Я понимаю, что mysql не имеет pivot-функций, поэтому требуется объединение, но не уверен на 100%.
Заранее спасибо за помощь.
1 ответ:
Вы можете сделать это с помощью перекрестной таблицы, такой как эта -
SELECT `year`, `month`, SUM(IF(`transporttype` = 'inbound', 1, 0)) AS `inbound`, SUM(IF(`transporttype` = 'LocalPMB', 1, 0)) AS `LocalPMB`, SUM(IF(`transporttype` = 'Long Distance', 1, 0)) AS `Long Distance`, SUM(IF(`transporttype` = 'shuttle', 1, 0)) AS `shuttle`, SUM(IF(`transporttype` = 'export', 1, 0)) AS `export`, SUM(IF(`transporttype` = 'Extrusions-LongDistance', 1, 0)) AS `Extrusions-LongDistance`, SUM(IF(`transporttype` = 'Extrusions-Shuttle', 1, 0)) AS `Extrusions-Shuttle` FROM `deliveries` GROUP BY `year`, `month`
В другом примечании, Вы должны переместить значения transporttype в таблицу подстановки и иметь transporttype_id в этой таблице.