У меня есть таблица с идентификатором и состоянием, которые только записываются, но никогда не обновляются, где я хочу запрашивать только идентификаторы с начальным состоянием, то есть только строки идентификаторов с записанной первой строкой, чтобы я мог их обработатьдля изменения состояния вниз по линии.Если обработка идет нормально, для этих идентификаторов пишется новое состояние, и в следующий раз, когда я сделаю запрос, я не должен получить строки с идентификаторами, которые были успешно обработаны.
Пример: у меня есть две строки для идентификатора с состоянием 'INITIAL 'и' DONE 'и еще одна строка для второго идентификатора с состоянием' INITIAL '.Когда я запрашиваю, я хочу получить только второй идентификатор.
Я пробовал с group by, но так как я не могу фильтровать состояние, не группируя его тоже, поэтому оно не работает так, как я планировал.
Я пришел с этим запросом, но действительно ли это как его решить?
select id, state from states s1 where state = 'INITIAL' and not exists
(select 1 from states s2 where s2.state != 'INITIAL' and s2.id = s1.id);
Я использую Postgres: :)
Я нашел многоподобные вопросы здесь, но не совсем так, но, пожалуйста, направьте меня на другой ответ, если вы знаете один!:)
Спасибо за помощь!