2017-04-12 87 views
0

我試圖用sequelize做羣組最大化,但除了原始查詢之外找不到任何解決方案。Sequelize groupwise maxium

例如我有一個1:m的關聯。 symbols表在company_key_statistics表中有很多行。 company_key_statistics具有列createdAt,它是指示何時創建行的時間戳。我需要加入最新symbolscompany_key_statistics,但我只需要最新的company_key_statistics。例如,我需要獲得ORCLMSFT符號,並且只能得到其最新的company_key_statistics

我想知道是否有可能使用sequelize內置方法做這樣的事情,或者只有方法是原始查詢?

UPDATE

我問過同樣的問題,this但對於普通的MySQL,也許基於這個問題,有人能回答如何處理sequelize。 在此先感謝!

+0

做了解決方案嗎? – Adiii

+0

@Adiii,感謝您的幫助,但不幸的是,這不是我想要的。 –

+0

所以我在這裏你可以分享你想要的一些代碼邏輯 – Adiii

回答

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

1

在我的選擇!我想這會給你有些幫助

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