#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'
);