Транспонировать строки запроса mysql в столбцы


У меня есть простой запрос, который дает следующие результаты:

SELECT month,transporttype,count(transporttype) as loads 
from deliveries 
group by month,transporttype

Я хотел бы перенести строки в столбцы.

Я понимаю, что mysql не имеет pivot-функций, поэтому требуется объединение, но не уверен на 100%.

Заранее спасибо за помощь.

1 5

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 в этой таблице.