Estoy usando Grails 1.2.4. Me gustaría saber cómo puedo ordenar por "countDistinct" (descendiendo) y con groupProperty dentro de las proyecciones.Usar groupProperty y countDistinct en Grails Criteria
Éstos son mis dominios:
class Transaction {
static belongsTo = [ customer : Customer, product : Product ]
Date transactionDate = new Date()
static constraints = {
transactionDate(blank:false)
}
}
class Product {
String productCode
static constraints = {
productCode(blank:false)
}
}
En términos de MySQL, esto es lo que quiero:
select
product_id,
count(product_id)
from
transaction
group by
product_id
order by
count(product_id) desc
En términos generales, me gustaría obtener una lista de productos (o simplemente producto id) ordenados por el número de transacciones de un producto tenía (descendente)
Ésta es mi suposición:
def c = Transaction.createCriteria() def transactions = c.list {
projections {
groupProperty("product")
countDistinct("product")
}
maxResults(pageBlock)
firstResult(pageIndex) }
def products = transactions.collect { it[0] }
Pero no da el resultado esperado. Cualquier pista sobre esto será muy apreciada. ¡Gracias!
gracias! funcionó. sin embargo, no mencionó cómo ordenar por 'count (product_id) desc' en createCriteria – firnnauriel