HQL语言order by语句与group by子句使用实例



order by语句

查询返回的集合根据类或组件属性的任何属性进行排序。例如:

from Person as p order by p.name,p.age

还可以使用as或desc关键字指定升序或降序的排序规则。例如:

from Person as p order by p.name asc,p.age desc

如果没有指定排序规则,默认采用升序规则。

group by子句


返回聚集值的查询可以对持久化类或组件属性的进行分组,分组使用group by子句。看下面的HQL查询语句:

select cat,color,sum(cat.weight),count(cat) from Cat cat group by cat.color

其规则类似于SQL规则。

having子句用于对分组进行过滤,如下所示:

select cat,color,sum(cat.weight),count(cat) from Cat cat group by cat.color having cat.color in (eg.Color.TABBY,eg.Color.BLACK)

注意:group by子句与order by 子句中都不能包含算术表达式