如何按计数(*)以Grails顺序进行分组

时间:2010-05-06 14:14:03

标签: sql grails gorm

我如何翻译:

SELECT COUNT(*) AS `count`, `a` FROM `b` GROUP BY `a` ORDER BY `a`

进入grails或gorm查询?

3 个答案:

答案 0 :(得分:11)

自grails 1.2以来,您可以通过创建的别名创建别名和顺序。

有关详细信息,请参阅https://cvs.codehaus.org/browse/GRAILS-3875https://cvs.codehaus.org/browse/GRAILS-3655

应用于您自己的代码,HQL查询将是:

def c = b.createCriteria() 
def results = c { 
  projections {
    groupProperty("a")
    count("a", 'myCount')  //Implicit alias is created here !
  }
  order 'myCount'
}

答案 1 :(得分:3)

在grails 1.2.1中工作

def c = C.createCriteria()
def pl = c.list {
    projections {
        countDistinct 'id', 'myCount'
        groupProperty 'a'
    }
    order ('myCount', 'desc')
}

答案就是例如

[[10,a3],[2,a1],[1,a2]]

答案 2 :(得分:2)

我会尝试

def c = b.createCriteria()
def results = c {
   projections {
      groupProperty("a")
      rowCount()
   }
   order("a")
}

请注意,这是未经测试的。