Вы можете подсчитать количество различных asset_id
на question_id
и выбрать только строки, в которых количество равно количеству значений, которые вы ищете, а количество равно количеству значений, которые вы ищете
SELECT question_id
FROM assets
GROUP BY question_id
HAVING COUNT(DISTINCT asset_id) = 2 AND
COUNT(asset_id) = SUM(asset_id IN (2, 3))
Вывод:
question_id
56
57
Или для поиска одного значения:
SELECT question_id
FROM assets
GROUP BY question_id
HAVING COUNT(DISTINCT asset_id) = 1 AND
COUNT(asset_id) = SUM(asset_id = 2)
Вывод:
question_id
58
59
Демо на dbfiddle