Warning: file_get_contents(/data/phpspider/zhask/data//catemap/5/sql/84.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
重新构造MySQL表,为每个id创建一列_Mysql_Sql_Select_Group By_Pivot - Fatal编程技术网

重新构造MySQL表,为每个id创建一列

重新构造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

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

+-------------+-------+-----------+
|  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循环作用于有序数组)。