Как сделать Группу в чашах Грааля для упорядочивания количеством (*)

Как делают я перевожу:

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

в чаши Грааля или запрос gorm?

7
задан Dónal 17 May 2010 в 11:18
поделиться

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]]
3
ответ дан 6 December 2019 в 12:47
поделиться

Я бы попробовал

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

Обратите внимание, что это не проверено.

2
ответ дан 6 December 2019 в 12:47
поделиться

Начиная с grails 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'
}
11
ответ дан 6 December 2019 в 12:47
поделиться
Другие вопросы по тегам:

Похожие вопросы: