Как мне перевести:
SELECT COUNT(*) AS `count`, `a` FROM `b` GROUP BY `a` ORDER BY `a`
в запросе grails или gorm?
Начиная с версии 1.2, вы можете создавать псевдонимы и упорядочивать их по псевдониму.
Подробнее см. https://cvs.codehaus.org/browse/GRAILS-3875 и https://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.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]]
Я бы попробовал
def c = b.createCriteria() def results = c { projections { groupProperty("a") rowCount() } order("a") }
Обратите внимание, что это не проверено.