Sto utilizzando Grails 1.2.4. Mi piacerebbe sapere come posso ordinare per "countDistinct" (discendente) e con groupProperty all'interno di una proiezione.Utilizzo di groupProperty e countDistinct nei criteri Grails
Qui sono i miei domini:
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)
}
}
In termini di MySQL, questo è quello che voglio:
select
product_id,
count(product_id)
from
transaction
group by
product_id
order by
count(product_id) desc
In termine generico, vorrei ottenere un elenco di prodotti (o solo prodotto id) in ordine di numero di transazioni che un prodotto era (discendente)
Questa è la mia ipotesi:
def c = Transaction.createCriteria() def transactions = c.list {
projections {
groupProperty("product")
countDistinct("product")
}
maxResults(pageBlock)
firstResult(pageIndex) }
def products = transactions.collect { it[0] }
Ma non fornisce il risultato atteso. Qualsiasi vantaggio su questo sarà molto apprezzato. Grazie!
grazie! ha funzionato. tuttavia, non hai menzionato come ordinare per 'count (product_id) desc' in createCriteria – firnnauriel