Warning: file_get_contents(/data/phpspider/zhask/data//catemap/4/jquery-ui/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
将mysql查询行转换为列_Mysql_Rows_Transpose - Fatal编程技术网

将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感谢注意事项。我将修改我的查询,包括一年。