nasıl

2010-05-06 9 views
6

Nasıl çevirebilirim Kont (*) tarafından sipariş grails Grup By yapmak: grails veya gorm sorguyanasıl

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

?

+0

için ne kadar Yaparım sayım ile sipariş? AS ile hiçbir adlandırma yoktur yüzünden, ben 'sayım' Bu neredeyse sorunu çözer – skurt

cevap

2

grails çalışan 1.2.1

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

cevap örnek

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

Ben

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

Not Bu denenmemiş olan çalışacaktı.

+0

ORDER BY yazamıyor ama saydım nasıl sipariş edebilirim? – skurt

9

grails 1.2 yana oluşturduğunuz takma adı ile takma adları ve sipariş oluşturabilirsiniz.

fazla ayrıntı için https://cvs.codehaus.org/browse/GRAILS-3875 ve https://cvs.codehaus.org/browse/GRAILS-3655 bakınız. Kendi koduna Uygulanan

, HQL sorgu olacaktır:

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

Teşekkürler, bunu yapmalısınız, ancak Graeme'in not ettiği gibi bu, 1.3 no'lu notlara taşınmıştır. Https://cvs.codehaus.org/browse/GRAILS-3875?focusedCommentId=200866&page=com.atlassian.jira.plugin.system.issuetabpanels % 3Acomment-TabPanel # action_200866 – skurt

+0

kesinlikle haklısın! http://www.grails.org/1.3-RC2+Release+Notes ve bölümüne bakın ve (sabit ve Graeme bu kod değiştirildi yorumlama olduğu çözünürlük sorunu eşittir oysa) o 1.3 ya uygulanmadı gibi görünüyor. Bu yüzden ("a" 'myCount') sen (bizi sonuçlarına haberdar edin) – fabien7474

+0

sayım denemek :-) yapmak gerektiğini düşünüyorum –