Как исключить определенный шаблон комбинации в наборе данных? - PullRequest
1 голос
/ 08 мая 2019

У меня есть набор данных, в котором я должен избавиться от ученика, если у него / нее есть оценка, отличная от «F». здесь, в примере, у Брайана есть оценки, отличные от «F», поэтому Брайан не должен появляться в моем результате. Должен появиться только Джек, так как я хочу ИСКЛЮЧИТЕЛЬНО "F" учеников.

Я пробовал это в SQL, используя функции NOT IN, EXCEPT, но я не могу решить проблему (Пожалуйста, нажмите, чтобы увидеть скриншот).

CODE Example

Как уже упоминалось выше, я ожидаю только записи Джека, поскольку у Брайана есть оценки, отличные от "F". Буду очень признателен за вашу помощь. Спасибо.

1 Ответ

2 голосов
/ 08 мая 2019

Если вы хотите только 'Jack', то вы можете использовать агрегацию:

select name
from t
group by name
having min(grade) = max(grade) and min(grade) = 'F';

Если вам действительно нужны исходные строки, вы можете использовать not exists:

select t.*
from t
where not exists (select 1 from t t2 where t2.name = t.name and t2.grade <> 'F');
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...