Node.js 解决了在使用聚合函数时获取另一列数据的问题

Node.js 解决了在使用聚合函数时获取另一列数据的问题,node.js,sql-server,sequelize.js,Node.js,Sql Server,Sequelize.js,我正在尝试在我的Express应用程序中使用Sequelize获取数据,并使用SQL Server作为数据库 这是我的密码: Order.findAll({ attributes:[ [Sequelize.fn('SUM', Sequelize.col('total_price')), 'total_price'], ], include:[ {model: Customer, attributes:['name']} ],

我正在尝试在我的Express应用程序中使用Sequelize获取数据,并使用SQL Server作为数据库

这是我的密码:

Order.findAll({
    attributes:[
        [Sequelize.fn('SUM', Sequelize.col('total_price')), 'total_price'],
    ],
    include:[
        {model: Customer, attributes:['name']}
    ],
    group:['Customer.id','Customer.name']
}).then(result =>res.json(result))
此代码运行良好,并使用聚合函数成功返回数据。但是,当我添加了另一个不需要聚合的属性,如
“product\u id”、“status”、“expired\u date”
,它会返回一个错误,如

列“Customer.product_id”在选择列表中无效,因为它未包含在聚合函数或GROUP BY子句中

基于此,它只能获取GROUPBY列表中的列

但是,如何才能获得添加的属性和聚合结果呢?比如:

{
     'total_price': 2000,
     'name': 'Jack',
     'status': 'Paid'
}

应该在函数中获取数据,比如首先获取聚合,然后获取另一个数据。我担心有可能返回不相关的数据。

我刚刚找到了一种方法,我只添加了我想进入group_by子句的属性/列。就这样,

Order.findAll({
attributes:[
    'product_id', 'status', 'expired_date',
    [Sequelize.fn('SUM', Sequelize.col('total_price')), 'total_price'],
],
include:[
    {model: Customer, attributes:['name']}
],
group:['Customer.id','Customer.name','Order.product_id', 'Order.status', 'Order.expired_date']
}).then(result =>res.json(result))

它已成功返回我的预期结果。但我不知道这样做有什么考虑吗?谢谢

我如何得到这些我没有分组的专栏??