我想对数据库中按用户分组的每个用户的所有订单金额进行汇总。
我正在使用.sum()
和.groupBy()
来做到这一点,就像这样:
knex('orders')
.select(['id_user', 'order_amount'])
.whereIn('id_user', ['user-foo', 'user-bar'])
.sum('order_amount')
.groupBy('id_user')
这将返回总和:
[ { sum: 500 } ]
[ { sum: 600 } ]
但是现在无法知道哪个总和对应于哪个用户。
这是我理想的结果:
[ { id_user: 'user-foo', sum: 500 } ]
[ { id_user: 'user-bar', sum: 600 } ]
我又如何为每个款项获得id_user
列?
答案 0 :(得分:2)
为此,您需要使用knex.raw()
:
knex.select('id_user', knex.raw('SUM(order_amount)')).from('orders').groupBy('id_user');