Я подозреваю, что проблема заключается в сравнении одного значения с набором результатов. Попробуйте заменить <= на 'in', чтобы ваш запрос выглядел так: </p>
from FlowerDAO as f
where f.unitPrice in
(select min(f2.unitPrice) from FlowerDAO as f2 where f2.color=f.color)
Кроме того, я удалил 'group by' с конца, так как это даст только один результат для каждого цвета, и вы упоминаете в вопросе (ах) о цветах. Вы можете использовать
order by f.color
вместо