排序->按字段分组并选择另一个字段的最大值

时间:2020-01-02 13:22:34

标签: sql node.js database group-by sequelize.js

在我的架构中,一个Item可以有多个Orders。每个Order都有一个价格。我正在尝试获取给定用户的所有订单,将其按itemId分组(每个项目仅一个订单),并确保该项目是价格最高的项目。

例如,如果Order表如下所示:

  ID | ItemID | UserID | Price |  
 ----|--------|--------|-------|-- 
   1 |      1 |      1 |   200 |  
   2 |      1 |      1 |   300 |  
   3 |      2 |      2 |   100 |  
   4 |      2 |      1 |   300 |  

如果userId为1,我想返回:

2 1 1 300(由于此ID为1的商品的订单价格最高)

4 2 1 300

使用以下代码,我可以获取给定用户的所有订单,但是我不确定如何应用上述条件:

 Orders.findAll({
      where: {
        userId: id
      },
      include: [
        {
          model: Items
          include: [{ model: DefaultItem, include: [Default] }]
        }
      ]
    })
      .then(orders => res.json(orders))

0 个答案:

没有答案