以下の結果を生成する簡単なクエリがあります。
SELECT month,transporttype,count(transporttype) as loads
from deliveries
group by month,transporttype
行を列に転置したいと思います。
mysqlにはピボット関数がないため、ユニオンが必要ですが、100%確実ではないことを理解しています。
助けてくれてありがとう。
このようなクロス集計でそれを行うことができます -
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 を含める必要があります。