ThinkChat2.0新版上线,更智能更精彩,支持会话、画图、阅读、搜索等,送10W Token,即刻开启你的AI之旅 广告
>[danger] 注意!!! 使用聚合功能时,必须给它一个别名,以便能够从模型中访问它 > 聚合函数的计算,都是排除了 null 值,所以COUNT( id ) 一般推荐用非空的主键来计算 ### COUNT 计算数量 ~~~ const { Sequelize } = app; // 查询班级总人数,按照姓名聚合 const ret = await Student.findAll({ attributes: [ // col 列名称,'别名' [Sequelize.fn('COUNT', Sequelize.col('name')), 'no_name'] ] }) SELECT COUNT(`name`) from Student [{"no_name":12}] ~~~ ### MAX 计算最大值 ~~~ const { Sequelize } = app; // 查询所有学生英语成绩最高分 const ret = await Student.findAll({ attributes:[[Sequelize.fn('MAX',Sequelize.col('english')), 'english_max']] }) ~~~ ### MIN 计算最小值 ~~~ // 查询所有学生英语成绩最低分 const ret = await Student.findAll({ attributes:[[Sequelize.fn('MIN',Sequelize.col('english')), 'english_min']] }) ~~~ ### SUN 求和 ~~~ const { Sequelize } = app; // 查询所有学生英语成绩的总和 const ret = await Student.findAll({ attributes:[[Sequelize.fn('SUM',Sequelize.col('english')), 'english_sum']] }) SELECT SUM(`english`) FROM ... ~~~ ### AVG 平均值 ~~~ const { Sequelize } = app; // 查询所有学生英语成绩的平均分 const ret = await Student.findAll({ attributes:[[Sequelize.fn('AVG',Sequelize.col('english')), 'english_avg']] }) SELECT AVG(`english`) FROM ... ~~~