重新构造MySQL表,为每个id创建一列
我有一个MySQL表,其结构如下:重新构造MySQL表,为每个id创建一列,mysql,sql,select,group-by,pivot,Mysql,Sql,Select,Group By,Pivot,我有一个MySQL表,其结构如下: +-------------+-------+-----------+ | timestamp | value | sensor_id | +-------------+-------+-----------+ 例如,有三种可能的传感器ID:id1、id2和id3。 我想执行查询以以下格式输出数据: +-------------+-----------+-----------+-----------+ | timestamp | value_id1
+-------------+-------+-----------+
| timestamp | value | sensor_id |
+-------------+-------+-----------+
例如,有三种可能的传感器ID:id1
、id2
和id3
。
我想执行查询以以下格式输出数据:
+-------------+-----------+-----------+-----------+
| timestamp | value_id1 | value_id2 | value_id3 |
+-------------+-----------+-----------+-----------+
只从一个ID提取数据很简单,但我很难将这三个ID结合起来
SELECT timestamp,
value AS 'value_id1'
FROM table
WHERE sensor_id='id1'
编辑以获取澄清:
(
时间戳
,传感器id
)在表中是唯一的使用条件聚合:
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
(timestamp,sensor_id)
在整个表中是唯一的吗?@Akina是的,它考虑处理表示层/应用程序级代码中的数据显示问题,假设您有这个问题(例如,一个简单的PHP循环作用于有序数组)。