Получить записи, в которых все соответствующие столбцы одного и того же столбца равны нулю - PullRequest
0 голосов
/ 25 марта 2019

Мои данные выглядят так:

| id             | Failure            
+----------------+-----------
| 1              | null 
| 1              | null  
| 1              | null  
| 1              | abc  
| 1              | null  
| 2              | null
| 2              | null  
| 2              | null  
| 2              | abc  
| 2              | null
| 3              | null
| 3              | null  
| 3              | null  
| 3              | null  
| 3              | null

Теперь мне нужно получить идентификатор, когда все данные столбца сбоев имеют нулевое значение для этого идентификатора.

Ожидаемый результат:

| id             | Failure            
+----------------+----------
| 3              | null
| 3              | null  
| 3              | null  
| 3              | null  
| 3              | null

Ответы [ 2 ]

3 голосов
/ 25 марта 2019

Если вы просто хотите идентификаторы, используйте агрегацию:

select id
from t
group by id
having max(failure) is null;

Я не вижу причин, чтобы получить все повторяющиеся строки.Если вы хотите их, то я предлагаю not exists:

select t.*
from t
where not exists (select 1
                  from t t2
                  where t2.id = t.id and t2.failure is not null
                 );
0 голосов
/ 25 марта 2019
    Select * 
    from Table 
    where Id not in (select id from Table where failure is not null)
...