7
votes

Comment faire un groupe par Grails pour commander par compte (*)

Comment traduire:

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


1 commentaires

Comment puis-je commander en compte? En raison de: il n'y a pas de renommer avec aussi, je ne peux pas écrire l'ordre par 'Compter'


3 Réponses :


2
votes

J'essaierais

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


0 commentaires

12
votes

Depuis GRAVES 1.2, vous pouvez créer des alias et de la commande par l'alias créé.

voir https : //cvs.codehaus.org/browse/gails-3875 et HTTPS: / /cvs.codehaus.org/browse/grails-3655 Pour plus de détails. p>

appliqué à votre propre code, la requête HQL serait: p>

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


3 commentaires

Merci, cela devrait le faire, mais comme les notes de Graeme, ceci est déplacé vers Grails 1.3 Voir CVS.CODEHAUS.ORG/BROWSE/...


Vous avez vraiment raison! Voir GRAils.org/1.3-RC2+Release+Notes et section et il Semble que cela ne soit pas mis en œuvre non plus dans 1.3 (alors que la question de la résolution est égale à fixe et Graeme commente que le code a été modifié). Donc, je pense que vous devez essayer :-) (veuillez nous tenir au courant des résultats)


Compte ("A", 'myCount')



3
votes

Travailler dans GRAILS 1.2.1

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


0 commentaires