在mysql中获取每个类别的最新价格[重复]

Posted

技术标签:

【中文标题】在mysql中获取每个类别的最新价格[重复]【英文标题】:Get LAST price per category in mysql [duplicate] 【发布时间】:2021-04-14 10:03:05 【问题描述】:

我有 1 张桌子,我想获得每个 productId 的最后支付价格 - 我该怎么做?

样品 tb1:

id    price   category
1     $5      a 
2     $7      a
3     $3      b
4     $1      b

这就是想法 => SELECT price WHERE id = ? GROUP BY category

如果您有任何想法,请告诉我;)

【问题讨论】:

“最后价格”是指id最大的那个吗? 与问题无关,但我不会将货币类型存储在数据库中。只需使用整数并在应用程序中添加货币。 Stack Overflow 上几乎每天都会问这个问题。 【参考方案1】:

你可以使用not exists如下:

select t.*
  from t
 where not exists 
       (Select 1 from t tt
         Where t.id = tt.id  
           And tt.category > t.category);

【讨论】:

【参考方案2】:

您可以使用相关子查询,假设 id 定义了您所说的“最后一个”:

select t.*
from t
where t.id = (select max(t2.id) from t t2 where t2.category = t.category);

【讨论】:

以上是关于在mysql中获取每个类别的最新价格[重复]的主要内容,如果未能解决你的问题,请参考以下文章

数据库中每个数据的类别由特定的 id 并且只允许为每个类别 mysql 获取 2

获取总类别树(所有类别及其子类别的列表)与根据需要获取每个分支?

如何在 mysql 查询中获取最新的商品价格?

查询以获取每个类别 + 子类别的相同行数

MySQL连接多对多单行

从mysql数据库中获取最新更新的数据[重复]