如何使用sequelizejs ORM从聚合函数中获取最小值

时间:2015-10-20 16:23:05

标签: mysql sql node.js postgresql sequelize.js

我希望使用sequelizejs聚合函数根据score表中的skill_id(FK)得到TeacherScore的最小值。

id  teacher_id            score skill_id     user_id
1   105697533513134511631   5    1         google:105697533513134511631
2   105697533513134511631   5    2         google:105697533513134511631
3   105697533513134511631   3    1         google:107628392388997523753
4   105697533513134511631   2    2         google:107628392388997523753
5   105697533513134511631   5    1         google:110357067158495174899
6   105697533513134511631   4    2         google:110357067158495174899
7   105697533513134511631   4    1         google:105697533513134511631
8   105697533513134511631   5    2         google:105697533513134511631
9   105697533513134511631   4    1         google:112733738188915344135
10  105697533513134511631   5    2         google:112733738188915344135
11  105697533513134511631   3    1         google:100851139210424987549
12  105697533513134511631   5    2         google:100851139210424987549
13  105697533513134511631   1    1         google:100851139210424987549
14  105697533513134511631   3    2         google:100851139210424987549

这就是我到目前为止所做的工作

models.TeacherScore.findAll({
  where: {
    fellow_uid: fellowId
  },
  include: [{
    model: models.Skill,
    attributes: ['name', 'id']
  }],
  group: ['Skill.id', 'Skill.name', 'TrainerScore.skill_id'],
  attributes: [[models.sequelize.fn('min', models.sequelize.col('TrainerScore.score')), 'score']]
}).then(function(score) {
  if (score) {
    res.status(200).json(score);
  } else {
    res.status(404).json({
      message: 'Score does not exist'
    });
  }
}).catch(function(err) {
  res.status(500).json(err);
});

0 个答案:

没有答案