0

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

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

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

更新

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

4

2 回答 2

1

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

             sql.findAll({
                        attributes: [
                            [sqldb.sequelize.fn('MAX', sqldb.sequelize.col('price')), "max"]
                        ],
                        group: [
                            "key"
                        ],
                        order: [
                            "key"
                        ],
                    })
于 2017-04-12T01:20:41.230 回答
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)
})

了解更多详情

使用限制偏移顺序和组操作数据集

原始查询

开始使用-sequelize-and-the-sequelize-cli

于 2017-04-12T01:20:02.880 回答