我有一个具有以下结构的MySQL表:
+-------------+-------+-----------+
| timestamp | value | sensor_id |
+-------------+-------+-----------+
让我们举一个例子,存在三种可能的sensor_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
)在表格中是唯一的
答案 0 :(得分:2)
使用条件聚合:
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