Transpose mysql query rows into columns

后端 未结 1 1224
旧时难觅i
旧时难觅i 2020-12-10 18:35

I have a simple query that produces the below results:

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


        
相关标签:
1条回答
  • 2020-12-10 19:09

    You can do it with a crosstab like this -

    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`
    

    On a different note, you should move transporttype values to a lookup table and have transporttype_id in this table.

    0 讨论(0)
提交回复
热议问题