Smu*_*ger 5 mysql transpose rows
我有一个简单的查询,产生以下结果:
SELECT month,transporttype,count(transporttype) as loads
from deliveries
group by month,transporttype
Run Code Online (Sandbox Code Playgroud)
我想将行转换为列.
我知道mysql没有pivot函数所以需要union而不是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`
Run Code Online (Sandbox Code Playgroud)
另外,您应该将transporttype值移动到查找表,并在此表中包含transporttype_id.