HQL-запрос с использованием group by - PullRequest
0 голосов
/ 28 января 2009

У меня есть следующая структура класса FlowerDAO с полями (сопоставленными с использованием Hibernate):

  • ID
  • UNITPRICE
  • имя
  • цвет

    Как я могу создать hql-запрос, чтобы получить цветок (и) для каждого цвета, у которого есть (ve) минимальная цена за единицу для этого цвета?

Я пробовал это, но это не работает

from FlowerDAO as f where f.unitPrice<= (select min(f2.unitPrice) from FlowerDAO as f2 where f2.color=f.color)
group by f.color

1 Ответ

2 голосов
/ 28 января 2009

Я подозреваю, что проблема заключается в сравнении одного значения с набором результатов. Попробуйте заменить <= на '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

вместо

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...