MySQL的单列值到多列按另一列值分组

时间:2018-08-27 12:04:29

标签: mysql

我正在尝试从像这样的表中创建查询

timestamp             |         iddebi       | value 
========================================================
2018-02-17  14:29:00             1               901
2018-02-19  14:29:00             1               501
2018-02-20  14:29:00             1               301
2018-02-21  14:29:00             1               501
2018-02-18  14:29:00             2               301
2018-02-19  14:29:00             2               401
2018-02-20  14:29:00             2               601
2018-02-21  14:29:00             2               701
2018-02-18  14:29:00             3               901
2018-02-19  14:29:00             3               501
2018-02-20  14:29:00             3               301
2018-02-21  14:29:00             3               501

我想在日期之间选择值,按日期将其分组,并在单独的列上输入id

timestamp            |  iddebi_1  |  iddebi_2  | iddebi_3
===========================================================
2018-02-17  14:29:00     901         null        null
2018-02-18  14:29:00     null         301        901
2018-02-19  14:29:00     501         401        501
2018-02-20  14:29:00     301         601        301
2018-02-21  14:29:00     501         701        501

所以,我想要按列分组的不同id的值(基于id) 没有值的地方返回null 谢谢你们

1 个答案:

答案 0 :(得分:1)

select timestamp,
       max(case when iddebi = 1 then value else null end) as iddebi_1,
       max(case when iddebi = 2 then value else null end) as iddebi_2,
       max(case when iddebi = 3 then value else null end) as iddebi_3
from your_table
group by timestamp