在HQL中,您可以尝试一下:
select band.name, max(vote.totalVotes)from Band band join band.votes votegroup by band.nameorder by max(vote.totalVotes) desc
这是假设之间存在一个一对多的关联
Band和
Votes(实际上,提供对象模型HQL和/或标准API,因为要查询的对象模型工作时非常有用)。
以防万一,这是文档的相关部分:
[14.12。groupby子句](http://docs.jboss.org/hibernate/core/3.3/reference/en/html/queryhql.html#queryhql-
grouping)select cat.color, sum(cat.weight), count(cat)from Cat catgroup by cat.colorselect foo.id, avg(name), max(name)from Foo foo join foo.names namegroup by foo.id还可以使用Have子句。
select cat.color, sum(cat.weight), count(cat)from Cat catgroup by cat.colorhaving cat.color in (eg.Color.TABBY, eg.Color.BLACK)如果基础数据库支持SQL函数和聚合函数,则它们的Have和order by子句中允许使用它们(即,MySQL中不支持)。
select catfrom Cat cat join cat.kittens kittengroup by cat.id, cat.name, cat.other, cat.propertieshaving avg(kitten.weight) > 100order by count(kitten) asc, sum(kitten.weight) descgroup by子句和order
by子句都不能包含算术表达式。Hibernate当前也不会扩展分组的实体,因此,如果未聚合cat的所有属性,则无法按cat编写group。您必须明确列出所有未聚合的属性。
欢迎分享,转载请注明来源:内存溢出
评论列表(0条)