在Mysql中将行转换为列
虽然我需要将行转置为列,但如果它只是将行转置为列或将列转置为行,我就可以这样做 我的表格里有数据在Mysql中将行转换为列,mysql,Mysql,虽然我需要将行转置为列,但如果它只是将行转置为列或将列转置为行,我就可以这样做 我的表格里有数据 Student|MONTH|Sub-1|Sub-2|Sub-3 Sunil |JAN | 46 |48 |55 Sunil |APR |33 |44 |55 Sunil |JULY |23 |42 |92 Sunil |OCT |30 |40 |50 Anil |JAN |22 |33 |44 Anil |JULY |13 |42
Student|MONTH|Sub-1|Sub-2|Sub-3
Sunil |JAN | 46 |48 |55
Sunil |APR |33 |44 |55
Sunil |JULY |23 |42 |92
Sunil |OCT |30 |40 |50
Anil |JAN |22 |33 |44
Anil |JULY |13 |42 |92
和期望输出
Student|Sub-1|Sub-2|Sub-3|Sub-1|Sub-2|Sub-3|Sub-1|Sub-2|Sub-3|Sub-1|Sub-2|Sub-3
--------------------------------------------------------------------------------------
Stu1 |6 |48 |55 |33 |44 |55 |23 |42 |92 |30 |40 |50
Stu2 |22 |33 |44 | | | |13 |42 |92 |98
etc..
有人知道怎么做吗?非常感谢 您可以使用此解决方案(透视表)-
…为其他月份添加列。可能重复:这是一个很好的解决方案,它帮助了我。非常感谢。当我有动态数据时,你能帮我解决这个问题吗?比如明天我可能会得到2月4日,晚些时候我可能会得到10月6日。。。。
SELECT
Student,
MAX(IF(MONTH = 'JAN', `Sub-1`, NULL)) `JAN-Sub-1`,
MAX(IF(MONTH = 'JAN', `Sub-2`, NULL)) `JAN-Sub-2`,
MAX(IF(MONTH = 'JAN', `Sub-3`, NULL)) `JAN-Sub-3`,
MAX(IF(MONTH = 'FEB', `Sub-1`, NULL)) `FEB-Sub-1`,
MAX(IF(MONTH = 'FEB', `Sub-2`, NULL)) `FEB-Sub-2`,
MAX(IF(MONTH = 'FEB', `Sub-3`, NULL)) `FEB-Sub-3`
FROM
trans
GROUP BY
student