2011-05-12 23 views
1

我正在使用Grails标准来为特定的域抽取结果我想问问是否有可能在order子句中拥有组属性或者换句话说,我该如何编写以下mysql使用Grails标准查询?如何使用Grails标准将订单子句中的属性组合

select 
     h.name, 
     count(h.id) 
from my_table as h 
group by h.name 
order by count(h.id) desc; 

到目前为止,Grails的条件查询看起来提前像

def results = MyObject.createCriteria().list{ 

projections{ 
    groupProperty('name') 
    countDistinct('id') 

    } 
    order(???,'desc') 
} 

感谢 拉赫曼

+2

答案是很容易的,一个需要从MY_TABLE为h 组由H计数功能 如 ' 选择 h.name, 计数(h.id)作为countDist 创建别名。通过countDist降序命名 顺序;' 和Grails对上述查询标准 ' DEF结果= MyObject.createCriteria()列表{ 突起{ groupProperty( '姓名') countDistinct( '身份证', 'countDist') } 顺序( 'countDist', '递减') }' 欢呼 – Rehman 2011-05-12 11:20:11

+0

可能要将此评论添加为答案。 – Pat 2011-05-13 16:44:13

回答

1

就遇到了这个问题。只是为了澄清雷曼的答案。

def results = MyObject.createCriteria().list { 

    projections { 
     groupProperty('name') 
     countDistinct('id', 'idDistinct') 
    } 
    order('idDisctinct','desc') 
}