SQL есть способ сортировки нескольких временных столбцов в один при сохранении метаданных? - PullRequest
0 голосов
/ 25 октября 2018

У меня есть таблица базы данных SQL, которая имеет четыре столбца с разным временем.Я хочу иметь возможность сортировать их таким образом, чтобы я мог объединить все метки времени a, b, c и d в один столбец, сохранив идентификатор и метаданные.

id | a_time | b_time | c_time | d_time | metadata1 | metadata2
1  | 8      | 7      | 2      | 4      | a         | b
2  | 6      | 1      | 12     | 10     | c         | d
3  | 5      | 9      | 3      | 11     | e         | f

В приведенном выше примереЯ хотел бы что-то в результате:

enter image description here

Ответы [ 2 ]

0 голосов
/ 25 октября 2018

Вы хотите удалить ваших данных.MySQL не имеет достаточно встроенной поддержки для этого, но ANSI способ сделать это будет использовать UNION:

SELECT id, a_time AS time, metadata1, metadata2 FROM yourTable
UNION ALL
SELECT id, b_time, metadata1, metadata2 FROM yourTable
UNION ALL
SELECT id, c_time, metadata1, metadata2 FROM yourTable
UNION ALL
SELECT id, d_time, metadata1, metadata2 FROM yourTable
ORDER BY time;

enter image description here

Демо

0 голосов
/ 25 октября 2018

Вы можете union между несколькими запросами в разное время:

(SELECT id, a_time AS time, metadata1, metadata2
 FROM   mytable)
UNION
(SELECT id, b_time AS time, metadata1, metadata2
 FROM   mytable)
UNION
(SELECT id, c_time AS time, metadata1, metadata2
 FROM   mytable)
UNION
(SELECT id, d_time AS time, metadata1, metadata2
 FROM   mytable)
ORDER BY time
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...