将mysql查询行转换为列
我有一个简单的查询,生成以下结果:将mysql查询行转换为列,mysql,rows,transpose,Mysql,Rows,Transpose,我有一个简单的查询,生成以下结果: SELECT month,transporttype,count(transporttype) as loads from deliveries group by month,transporttype 我想把行转换成列 我知道mysql没有pivot函数,所以需要一个union,但不是100%确定 提前感谢您的帮助。您可以使用这样的交叉表来完成- SELECT `year`, `month`, SUM(IF(`transport
SELECT month,transporttype,count(transporttype) as loads
from deliveries
group by month,transporttype
我想把行转换成列
我知道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`
另一方面,您应该将transporttype值移动到查找表中,并在该表中包含transporttype_id。可能重复的Go through this[可能会对您有所帮助。@RyTransmisth(注意)这个答案应该为你做,但是,你可能想考虑将年作为一个额外的组,如果你跨越了一年的活动。你不会希望假数字滚动一年与另一个。@ DrAPP感谢注意事项。我将修改我的查询,包括一年。