如何使用Grails在同一查询中依靠不同的值?

时间:2011-02-20 19:30:42

标签: grails grails-domain-class

我有一个状态为的课程:

class A{
  String status
}

此状态可以包含值'start','end','inprogress'。

我想在一个查询中获得'start','end'和'inprogress'的数量。

我看到这篇文章:Different record count values in one query但它只适用于Oracle。

是否可以在Grails / GORM中执行此操作?

感谢。

2 个答案:

答案 0 :(得分:4)

您可以使用executeQuery

def counts = A.executeQuery(
    'select status, count(status) from A group by status')

这将返回一个List of Object [],例如

for (row in counts) {
    println "there are ${row[1]} with status '${row[0]}'"
}

答案 1 :(得分:2)

如果您喜欢条件查询,请查看以下内容: stackoverflow->Using groupProperty and countDistinct in Grails Criteria