Tôi đang sử dụng Grails 1.2.4. Tôi muốn biết làm thế nào tôi có thể sắp xếp theo "countDistinct" (giảm dần) và với groupProperty bên trong một phép chiếu.Sử dụng nhómProperty và countDistinct trong Tiêu chí Grails
Dưới đây là lĩnh vực của tôi:
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)
}
}
Về MySQL, đây là những gì tôi muốn:
select
product_id,
count(product_id)
from
transaction
group by
product_id
order by
count(product_id) desc
Trong thuật ngữ chung, tôi muốn để có được một danh sách các sản phẩm (hoặc chỉ cần sản phẩm id) được sắp xếp theo số lượng giao dịch mà một sản phẩm có (giảm dần)
Đây là dự đoán của tôi:
def c = Transaction.createCriteria() def transactions = c.list {
projections {
groupProperty("product")
countDistinct("product")
}
maxResults(pageBlock)
firstResult(pageIndex) }
def products = transactions.collect { it[0] }
Nhưng nó không cho kết quả mong đợi của tôi. Bất kỳ khách hàng tiềm năng nào về điều này sẽ được đánh giá cao. Cảm ơn!
cảm ơn! nó đã làm việc. tuy nhiên, bạn không đề cập đến cách sắp xếp theo 'count (product_id) desc' trong createCriteria – firnnauriel