Я ломал голову и гуглил, чтобы найти решение, и я подозреваю, что, возможно, не задаю вопрос четко, поэтому, пожалуйста, потерпите меня.
Мне нужно создать пару запросов, которые фильтруют записи на следующей основе. Хотя при извлечении данных участвуют несколько таблиц, я придерживаюсь основного требования.
Ниже приведены примеры значений:
Key | Decision
123 | Complete
123 | Additional info
123 | Something
123 | Complete
.
.
.
254 | Complete
254 | Complete
254 | Complete
.
.
.
На основании приведенных выше данных я могу сделать выбор и сгруппировать по ключу и решению, чтобы получить набор данных следующим образом:
Key | Decision
123 | Complete
123 | Additional info
123 | Something
.
.
.
254 | Complete
.
.
.
Фактические данные, которые мне нужны, бывают двух типов (это отдельные запросы, которые необходимо построить)
1) Ключи, в которых единственным решением является «Завершено» - в приведенном выше примере только Key = 254 будет соответствовать
2) Ключи, в которых решение может содержать «Дополнительная информация» - в приведенном выше примере только Key = 123 будет соответствовать
Это кажется почти возможным, как будто у меня где-то есть ответ, и я не могу его понять. Или это желаемое за действительное?
Я попробовал следующее
select key from table where decision not in (select key from table where decision <> "Complete")
Это дает мне желаемый результат для Решения = Завершено. Однако, поскольку окончательный выбор, по крайней мере, содержит как минимум три объединения, я подозреваю, что производительность будет плохой. Запросы будут выполняться в Oracle 11g.
Если у кого-нибудь есть предложения, которые помогут мне выбраться из этой колеи идей, я был бы очень признателен.