Выберите строки, в которых для одного и того же значения в столбце A столбец B имеет определенное значение во всех строках

#sql #oracle

Вопрос:

Мне нужно найти строки, в которых для одного и того же значения в столбце A столбец B имеет определенное значение во всех строках.

Например, приведенная таблица:

Колонка А Колонка В
Мамочка успех
Мамочка успех
папа успех
папа неудача
ребенок неудача
ребенок неудача

Допустим, мне нужны все строки, в которых столбец B является «ошибкой», для одного и того же значения в столбце A. В этом случае я бы хотел:

Колонка А Колонка В
ребенок неудача
ребенок неудача

Комментарии:

1. Какую СУБД вы используете?

2. oracle sql. Попытался найти для него бирку, но не увидел ни одной

Ответ №1:

Вы можете использовать not exists :

 select t.*
from t
where not exists (select 1
                  from t t2
                  where t2.a = t.a and t2.b <> 'failure'
                 );