ОШИБКА: более одной строки, возвращенной подзапросом, используемым в качестве выражения при вставке данных - PullRequest
1 голос
/ 17 апреля 2020

Я пытаюсь вставить данные в таблицу down_event, используя данные из моей таблицы event, в которой содержится более 1 тыс. Данных, но проблема заключается в том, что моя строка возвращает более одной строки подзапрос. Ниже мой код запроса:

INSERT INTO dashboard.down_event(terminal_id, event_description, down_date, down_time, down_duration_sec)
SELECT terminal_id, event_description, event_start_adj::TIMESTAMP::DATE AS date, event_start_adj::TIMESTAMP::TIME AS time, (SELECT EXTRACT(EPOCH FROM (SELECT event_end_adj FROM dashboard.event )::timestamp - (SELECT event_start_adj FROM dashboard.event)::timestamp) AS seconds) FROM dashboard.event WHERE event_status = 'DOWN' AND planned = 'UNPLANNED'

После проверки запроса. Он работает для запроса ниже и получил все данные, которые мне нужны в таблице.

SELECT terminal_id, event description, event_start_adj::TIMESTAMP::DATE as date, event_start_adj::TIMESTAMP::TIME AS time

, но проблема в том, когда я добавил свой запрос для извлечения секунд при вычитании столбца event_end_adj и event_start_adj столбец. Кажется, ошибка появляется в этом запросе.

1 Ответ

2 голосов
/ 17 апреля 2020

Я не могу понять, почему вы используете подзапрос. Делает ли это то, что вы хотите?

SELECT terminal_id, event_description,
       event_start_adj::TIMESTAMP::DATE AS date, 
       event_start_adj::TIMESTAMP::TIME AS time,
       (EXTRACT(EPOCH FROM event_end_adj::TIMESTAMP) -
        EXTRACT(EPOCH FROM event_start_adj::TIMESTAMP)
       ) AS seconds
FROM dashboard.event
WHERE event_status = 'DOWN' AND planned = 'UNPLANNED'
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...