Отсеять значения столбца, которые содержат одно из нескольких значений другого столбца
Примерная структура данных таблицы:
| object_id | | risk_id |
| 111111 | | 23 |
| 111111 | | 45 |
| 111111 | | 543 |
| 222222 | | 45 |
| 222222 | | 543 |
| 333333 | | 45 |
| 333333 | | 543 |
| 333333 | | 123 |
Необходимо оставить уникальные object_id, которые не содержат в столбце risk_id значение 23.
Пример результата:
| object_id |
| 222222 |
| 333333 |
Ответы (2 шт):
Автор решения: Alexandr
→ Ссылка
SELECT
object_id
FROM
table_name
WHERE
object_id NOT IN (
SELECT
object_id
FROM
table_name
WHERE
risk_id = 23
)
GROUP BY
object_id
Автор решения: Mike
→ Ссылка
select object_id
from table
group by object_id
having sum(risk_id = 23) = 0
Группируем по obect_id в having суммируем записи с указанным risk_id.