Querydsl - 如何使用group by和sum

时间:2013-06-18 15:59:12

标签: group-by sum querydsl

我想在sql中进行查询:

SELECT users.id, SUM(total), SUM(total*price) FROM sales INNER JOIN users ON sales.id_user=users.id GROUP BY users.id

我尝试寻找解决方案,但最接近的是:

QSales sales = QSales.sales;
JPAQuery query = from(sales);
QUsers users = QUsers.users;
query.innerJoin(sales.users, users);
List<Object[]> response = query.groupBy(sales.user).list(sales.user, sales.total.sum());

但我不知道如何得到这个:

SUM(total*price)

2 个答案:

答案 0 :(得分:2)

SUM(total*price)

可以表示为

total.multiply(price).sum()

答案 1 :(得分:0)

您可以使用NumberExpression

NumberExpression totalPrice = sales.total.multiply(sales.price);

然后使用totalPrice.sum()