Реструктуризация MySQL таблицы для создания одного столбца на каждый идентификатор - PullRequest
0 голосов
/ 19 июня 2020

У меня есть одна таблица MySQL со следующей структурой:

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

Скажем, в качестве примера, что существует три возможных идентификатора датчиков: id1, id2 и id3. Я хотел бы выполнить запрос для вывода данных в следующем формате:

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

Извлечь данные только из одного идентификатора несложно, но я изо всех сил пытаюсь объединить три из них.

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

РЕДАКТИРОВАТЬ для уточнения: (timestamp, sensor_id) уникален для таблицы

1 Ответ

2 голосов
/ 19 июня 2020

Использовать условное агрегирование:

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
...