Javascript 在将groupby与Sequelize和SQLite一起使用时,如何获得等于某个值的行数?
我有一张表格,上面有Javascript 在将groupby与Sequelize和SQLite一起使用时,如何获得等于某个值的行数?,javascript,node.js,sqlite,sequelize.js,Javascript,Node.js,Sqlite,Sequelize.js,我有一张表格,上面有电子邮件、姓名、订单号、评论。所有这些字段都是文本。我通过电子邮件对结果进行分组,并计算有多少人拥有订单号 review字段的值为'Live'、'Failed'或null我想计算每个电子邮件地址出现这些值的次数,并在新列中返回计数(review\u live\u count、review\u failed\u count和review\u null\u count) 这是我目前的代码: let users = await db.reservations.findAll({
电子邮件、姓名、订单号、评论
。所有这些字段都是文本
。我通过电子邮件
对结果进行分组,并计算有多少人拥有订单号
review
字段的值为'Live'
、'Failed'
或null
我想计算每个电子邮件地址出现这些值的次数,并在新列中返回计数(review\u live\u count
、review\u failed\u count
和review\u null\u count
)
这是我目前的代码:
let users = await db.reservations.findAll({
attributes: ['email', 'name',[db.sequelize.fn('count', db.sequelize.col('order_number')), 'orders']], group: ["email"],
raw:true
});
我正在使用Node、Sequelize和SQLite
Sequelize
和Sequelize
都是通过db
对象公开的。可以尝试使用Sequelize文本吗
let users = await db.reservations.findAll({
attributes: [
'email',
'name',
[db.sequelize.fn('count', db.sequelize.col('order_number')), 'orders'],
[db.sequelize.literal(`COUNT (distinct "id") FILTER ( WHERE "review" = 'Live' )` ), 'review_live_count'],
[db.sequelize.literal(`COUNT (distinct "id") FILTER ( WHERE "review" = 'Failed' )` ), 'review_failed_count'],
[db.sequelize.literal(`COUNT (distinct "id") FILTER ( WHERE "review" is null )` ), 'review_null_count'],
],
group: ["email"],
raw:true
});
希望能有所帮助谢谢!但这只是给了我每个字段的
1
或0
,并没有给我实际的计数。我只是编辑了不同的电子邮件到id。希望有列id。