重组mysql表,为每个id创建一列

nc1teljy  于 2021-07-26  发布在  Java
关注(0)|答案(1)|浏览(409)

我有一个mysql表,其结构如下:

+-------------+-------+-----------+
|  timestamp  | value | sensor_id |
+-------------+-------+-----------+

例如,有三种可能的传感器ID: id1 , id2 以及 id3 . 我想执行查询以以下格式输出数据:

+-------------+-----------+-----------+-----------+
|  timestamp  | value_id1 | value_id2 | value_id3 |
+-------------+-----------+-----------+-----------+

只从一个id提取数据很简单,但我很难将其中的3个合并起来。

SELECT timestamp,
       value AS 'value_id1'
FROM table
WHERE sensor_id='id1'

编辑澄清:( timestamp , sensor_id )是独一无二的

6vl6ewon

6vl6ewon1#

使用条件聚合:

select 
    timestamp,
    max(case when sensor_id = 'id1' then value end) value_id1,
    max(case when sensor_id = 'id2' then value end) value_id2,
    max(case when sensor_id = 'id3' then value end) value_id3
from mytable
group by timestamp

相关问题