Отсеять значения столбца, которые содержат одно из нескольких значений другого столбца

Примерная структура данных таблицы:

|   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.

→ Ссылка