获取总和作为附加列而不是唯一的列
Get sum as an additional column instead of only column
我想汇总所有订单金额,从我的数据库中按用户分组,针对一组特定用户。
我正在使用 .sum()
and .groupBy()
来执行此操作,如下所示:
knex('orders')
.select(['id_user', 'order_amount'])
.whereIn('id_user', ['user-foo', 'user-bar'])
.sum('order_amount')
.groupBy('id_user')
这returns总和:
[ { sum: 500 } ]
[ { sum: 600 } ]
但是现在没有办法知道哪个总和对应哪个用户。
这将是我理想的结果:
[ { id_user: 'user-foo', sum: 500 } ]
[ { id_user: 'user-bar', sum: 600 } ]
我怎样才能得到每个总和的 id_user
列?
为此您需要使用 knex.raw()
:
knex.select('id_user', knex.raw('SUM(order_amount)')).from('orders').groupBy('id_user');
我想汇总所有订单金额,从我的数据库中按用户分组,针对一组特定用户。
我正在使用 .sum()
and .groupBy()
来执行此操作,如下所示:
knex('orders')
.select(['id_user', 'order_amount'])
.whereIn('id_user', ['user-foo', 'user-bar'])
.sum('order_amount')
.groupBy('id_user')
这returns总和:
[ { sum: 500 } ]
[ { sum: 600 } ]
但是现在没有办法知道哪个总和对应哪个用户。
这将是我理想的结果:
[ { id_user: 'user-foo', sum: 500 } ]
[ { id_user: 'user-bar', sum: 600 } ]
我怎样才能得到每个总和的 id_user
列?
为此您需要使用 knex.raw()
:
knex.select('id_user', knex.raw('SUM(order_amount)')).from('orders').groupBy('id_user');