Sql 将sum作为附加列而不是唯一列获取
我想为一组特定的用户汇总所有订单金额,从我的数据库中按用户分组 我正在使用并执行此操作,如下所示:Sql 将sum作为附加列而不是唯一列获取,sql,postgresql,knex.js,Sql,Postgresql,Knex.js,我想为一组特定的用户汇总所有订单金额,从我的数据库中按用户分组 我正在使用并执行此操作,如下所示: knex('orders') .select(['id_user', 'order_amount']) .whereIn('id_user', ['user-foo', 'user-bar']) .sum('order_amount') .groupBy('id_user') 这将返回以下总和: [ { sum: 500 } ] [ { sum: 600 } ] 但是现在没有办
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\u user
列?为此,您需要使用knex.raw()
:
knex.select('id_user', knex.raw('SUM(order_amount)')).from('orders').groupBy('id_user');
为此,您需要使用
knex.raw()
:
knex.select('id_user', knex.raw('SUM(order_amount)')).from('orders').groupBy('id_user');