2010-05-06 1 views
6

이 어떻게 번역 할 수 (*)로 주문 Grails에의 그룹으로 할 일 : Grails의 또는 GORM 쿼리에어떻게

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

?

+0

입니다 어떻게 할 개수로 주문 하시겠습니까? AS와 함께 이름 변경이 없기 때문에 '계산'주문 번호를 쓸 수 없습니다 – skurt

답변

2

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]] 
2

나는

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

참고이 안된 시도 할 것입니다.

+0

이것은 거의 문제를 해결하지만 카운트별로 어떻게 주문합니까? – skurt

9

grails 1.2 이후로 생성 된 별칭으로 별칭과 순서를 만들 수 있습니다.

자세한 내용은 https://cvs.codehaus.org/browse/GRAILS-3875https://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' 
} 
+0

고마워요. 그래야합니다.하지만 Graeme가 이걸 grails 1.3으로 옮겼습니다. https://cvs.codehaus.org/browse/GRAILS-3875?focusedCommentId=200866&page=com.atlassian.jira.plugin.system.issuetabpanels를 참조하십시오. % 3A 의견 - tabpanel # action_200866 – skurt

+0

당신은 틀림없이 옳습니다! http://www.grails.org/1.3-RC2+Release+Notes와 section을 참고하십시오. 1.3에서는 구현되지 않은 것 같습니다 (해상도 문제는 고정되어 있고 Graeme는 코드가 변경되었다고 말하고있는 반면). 그래서 당신이 시도해 볼 필요가 있다고 생각합니다 :-) (결과에 대한 정보를 알려주십시오) – fabien7474

+0

count ("a", "myCount") –