Sequelize groupwise maxium

时间:2017-04-12 00:12:19

标签: mysql node.js grouping sequelize.js groupwise-maximum

我尝试用sequelize做groupwise最大值,但除了原始查询之外找不到任何解决方案。

例如,我有一个1:m的关联。 symbols表在company_key_statistics表中有很多行。 company_key_statistics的列createdAt是时间戳,表示何时创建了行。我需要将最新的symbols加入company_key_statistics,但我只需要最新的company_key_statistics。例如,我需要获取ORCLMSFT个符号,并且只能获取最新的company_key_statistics

我想知道是否有可能使用sequelize内置方法来做这些事情,或者只是原始查询?

更新

我问了同样的this问题,但对于普通的MySQL,也许基于这个问题,有人可以回答如何处理续集。 提前谢谢!

2 个答案:

答案 0 :(得分:1)

在我的选项中!我认为这会给你一些帮助

             sql.findAll({
                        attributes: [
                            [sqldb.sequelize.fn('MAX', sqldb.sequelize.col('price')), "max"]
                        ],
                        group: [
                            "key"
                        ],
                        order: [
                            "key"
                        ],
                    })

答案 1 :(得分:0)

这两种方式都有可能

var models = require('./database/models'); //path to your models
var user = require('./database/models').user; //path to your user models

user.findAll(
    {group: 'age',

     order: [
    [models.sequelize.fn('max', models.sequelize.col('age')), 'DESC'],
    // will return max(`age`) DESC and will groupby age
  ]
    }
).then(function(result)
                   {
    res.json(result)
})

了解更多详情

manipulating-the-dataset-with-limit-offset-order-and-group

raw-queries

getting-started-with-sequelize-and-the-sequelize-cli