Sie können GROUP BY verwenden Klausel, HAVING -Klausel und COUNT() bei diesem Problem keine Notwendigkeit, einer Unterabfrage beizutreten
SELECT PersonName, MAX(Flower) flowerName
FROM TableName
GROUP BY PersonName
HAVING COUNT(DISTINCT Flower) = 1