在 Sequelize 中计算列的数据
Counting a column's data in Sequelize
我在 Sequelize 中有两个 table 相互关联,我想计算以下
职位 table 列:'id'、'name'
工人 table colmuns: 'id', 'name', 'job_id'
假设我们现在有 5 个职位空缺,并且有很多与 job_id 相关的工作人员
我想显示作业的 'id'、'name' 并计算有多少工人具有相同的 job_id
示例:{id: 1, name: Engineer, count: 6};这意味着在工人的 table 6 名工人中有 job_id = 1
我的查询是这样的:
Jobs.findAll({
attribute:['id', 'name'],
include: [
{
model: Worker,
attributes: [[Sequelize.fn('count', Sequelize.col('job_id')), 'count']]
}
],
group: ['Job.id', 'Worker.id']
})
给我以下结果(不计):
[
{
"id": 7,
"name": "Doctor",
"users": []
},
{
"id": 1,
"name": "Engineer",
"users": [
{
"count": 1
},
{
"count": 1
},
{
"count": 1
},
{
"count": 1
},
{
"count": 1
},
{
"count": 1
}
]
},
{
"id": 4,
"name": "Pilot",
"users": []
}
]
而它应该计算所有 job_id 用户,如下所示:
"id": 1,
"name": "Engineer",
"count": 6
您必须像这样在作业属性中定义计数。
Jobs.findAll({
attribute: ['id', 'name', [sequelize.fn("COUNT", sequelize.col('Worker.job_id')), "count"]],
include: [
{
model: Worker,
attributes: []
}
],
group: ['Worker.job_id', 'Job.id']
})
希望对您有所帮助。
我在 Sequelize 中有两个 table 相互关联,我想计算以下
职位 table 列:'id'、'name'
工人 table colmuns: 'id', 'name', 'job_id'
假设我们现在有 5 个职位空缺,并且有很多与 job_id 相关的工作人员 我想显示作业的 'id'、'name' 并计算有多少工人具有相同的 job_id
示例:{id: 1, name: Engineer, count: 6};这意味着在工人的 table 6 名工人中有 job_id = 1
我的查询是这样的:
Jobs.findAll({
attribute:['id', 'name'],
include: [
{
model: Worker,
attributes: [[Sequelize.fn('count', Sequelize.col('job_id')), 'count']]
}
],
group: ['Job.id', 'Worker.id']
})
给我以下结果(不计):
[
{
"id": 7,
"name": "Doctor",
"users": []
},
{
"id": 1,
"name": "Engineer",
"users": [
{
"count": 1
},
{
"count": 1
},
{
"count": 1
},
{
"count": 1
},
{
"count": 1
},
{
"count": 1
}
]
},
{
"id": 4,
"name": "Pilot",
"users": []
}
]
而它应该计算所有 job_id 用户,如下所示:
"id": 1,
"name": "Engineer",
"count": 6
您必须像这样在作业属性中定义计数。
Jobs.findAll({
attribute: ['id', 'name', [sequelize.fn("COUNT", sequelize.col('Worker.job_id')), "count"]],
include: [
{
model: Worker,
attributes: []
}
],
group: ['Worker.job_id', 'Job.id']
})
希望对您有所帮助。