Просто пара других подходов.(кажется, самое чистое)
Разделите данные на два набора и убедитесь, что в наборе «A» нет данных в наборе «B». Первый подход с использованием внешнего соединения возвращает только записи в наборе «A», гдев наборе «B» не найдено ни одного связанного числа.
SELECT Min(A.ID) as ID, A.num, A.status
FROM table A
LEFT JOIN table B
on A.Num = B.Num
and B.Status = 'NO'
WHERE A.Status = 'YES'
and B.Num is null
GROUP BY A.Num, A.Status
Второй подход с использованием not not.аналогично только num записей в наборе «A», а не в наборе «B».
SELECT min(A.ID) as ID, A.Num, A.Status
FROM table A
WHERE NOT EXISTS (SELECT 1
FROM Table B
WHERE A.Num = B.Num
and B.Status = 'NO')
GROUP BY A.Num, A.Status