如何使用sequelize创建类似的查询?
SELECT name, region, SUM(((COALESCE(base_income, 0) + COALESCE(user_taxes, 0))) AS total_sal FROM user GROUP BY name, region;
Run Code Online (Sandbox Code Playgroud)
虽然这是一个旧帖子,但我现在跑了两次。所以我想分享我的解决方案:
user.findAll({
attributes: [ 'name', 'region',
[ sequelize.literal(
'COALESCE(base_income, 0) + COALESCE(user_taxes, 0)'
), 'total_sal'
]
],
group: ['name', 'name']
})
Run Code Online (Sandbox Code Playgroud)
确定,因此以下是上述RAW sql查询的解决方案。
user.findAll({
attributes: ['name', 'region', [sequelize.fn('SUM', (sequelize.fn('COALESCE', (sequelize.col('base_income')), 0), sequelize.literal('+'), sequelize.fn('COALESCE', (sequelize.col('user_taxes')), 0))), 'total_sal']],
group: ['name', 'name']})
Run Code Online (Sandbox Code Playgroud)
我们必须使用sequelize.literal来在查询之间放置任何运算符。希望这可以帮助。
| 归档时间: |
|
| 查看次数: |
7636 次 |
| 最近记录: |