J'utilise Grails 1.2.4. Je voudrais savoir comment je peux trier par "countDistinct" (descendant) et avec groupProperty dans une projection.Utilisation de groupProperty et countDistinct dans Grails Critères
Voici mes domaines:
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 ce qui concerne MySQL, ce que je veux:
select
product_id,
count(product_id)
from
transaction
group by
product_id
order by
count(product_id) desc
En terme général, je voudrais obtenir une liste des produits (ou tout simplement produit id), triées par le nombre de transactions un produit HAD (décroissant)
Ceci est ma conjecture:
def c = Transaction.createCriteria() def transactions = c.list {
projections {
groupProperty("product")
countDistinct("product")
}
maxResults(pageBlock)
firstResult(pageIndex) }
def products = transactions.collect { it[0] }
Mais cela ne donne pas le résultat escompté. Toute piste à ce sujet sera grandement appréciée. Merci!
merci! ça a marché. Cependant, vous n'avez pas mentionné comment trier par 'count (product_id) desc' dans createCriteria – firnnauriel