如何在Sequelize中编写按年龄分组统计志愿者ID数量的查询?
实现指定分组统计的Sequelize查询
对应你需要的SQL功能,这里提供两种Sequelize实现方式:
方式一:使用模型查询(推荐)
假设你的Sequelize模型名为 RedCrossVolunteer(对应表 red_cross_volunteers),代码如下:
const { sequelize } = require('./your-sequelize-config'); // 引入你的Sequelize实例 const RedCrossVolunteer = require('./models/RedCrossVolunteer'); // 引入模型 const stats = await RedCrossVolunteer.findAll({ attributes: [ 'age', // 调用COUNT函数统计id数量,指定别名count_id [sequelize.fn('COUNT', sequelize.col('id')), 'count_id'] ], // 按age字段分组 group: ['age'] });
方式二:使用原始SQL查询
如果更习惯直接写SQL,也可以用原始查询方式:
const { sequelize } = require('./your-sequelize-config'); const stats = await sequelize.query( 'SELECT COUNT(id) AS count_id, age FROM red_cross_volunteers GROUP BY age', { type: sequelize.QueryTypes.SELECT } );
说明
- 两种方式都会返回按年龄分组的统计结果,每条数据包含
age和count_id(对应SQL里的COUNT(id)) - 模型查询方式更符合Sequelize的ORM风格,能自动处理数据映射
内容的提问来源于stack exchange,提问作者xkeedev
相关产品推荐
相关产品推荐

