У меня есть следующие данные, где я отслеживаю действия на двух разных устройствах:
CREATE TABLE input_data
(
device "varchar",
activity "varchar",
time_from time,
time_to time);
INSERT INTO input_data (device, activity, time_from, time_to) VALUES
('pc', 'netflix', '2020-01-01 12:30:00', '2020-01-01 14:00:00'),
('phone', 'call', '2020-01-01 12:58:40', '2020-01-01 13:05:00');
Я хочу видеть интервалы времени, проведенные на обоих устройствах одновременно:
CREATE TABLE desired_result
(
pc_activity "varchar",
phone_activity "varchar",
time_from time,
time_to time);
INSERT INTO desired_result (pc_activity, phone_activity, time_from, time_to) VALUES
('netflix', 'NA', '2020-01-01 12:30:00', '2020-01-01 12:58:40'),
('netflix', 'call', '2020-01-01 12:58:40', '2020-01-01 13:05:00'),
('netflix', 'NA', '2020-01-01 13:05:00', '2020-01-01 14:00:00')
Как мне получить нужный результат в Postgres?