MySQL根据列中的最大值获取行[重复]

Posted

技术标签:

【中文标题】MySQL根据列中的最大值获取行[重复]【英文标题】:MySQL get row based on max value in column [duplicate] 【发布时间】:2020-12-08 20:10:47 【问题描述】:

我有一个 mysql 数据库,它目前正在从 CSV 文件中附加新数据。 除了几列(即 last_status)之外,有些行是重复的。

我想通过仅捕获基于 MAX(last_status) 的最新记录来过滤掉整个数据库。

假设我有 4 行具有相似 ID:

ID, last_status,....(50 other columns)
100, 08/08/2020,...
100, 09/08/2020,...
200, 09/08/2020,...
200, 11/08/2020,...

我希望所有记录的结果都是这样的:

ID, last_status,...(50 other columns)
100, 09/08/2020,...
200, 11/08/2020,...

我试过这个:

    select *
from total_report s1
inner join
(
  select MAX(last_status) as last_status, ID
  from htotal_report
  group by ID
) s2
  on s1.ID = s2.ID
  and s1.last_status = s2.last_status

我需要这个的原因是为了在 Tableau 中可视化数据,现在它正在分别计算重复的 ID 行。我想根据可在 Tableau 中用于解决此问题的问题创建一个视图。

编辑:ID 是唯一的 ID,不是自动递增的 ID,也不是 PK 或 FK。

【问题讨论】:

我不太明白...实际上您尝试的查询就是您要查找的...为什么它不起作用? @Gosfly 我可能做错了什么,但是当我在tableau(初始SQL)中执行SQL查询时,结果是一样的。 “都一样”是什么意思? 【参考方案1】:

如果我理解正确,不只是内部部分提供您需要的东西吗?

 select MAX(last_status) as last_status, ID
  from htotal_report
  group by ID

【讨论】:

以上是关于MySQL根据列中的最大值获取行[重复]的主要内容,如果未能解决你的问题,请参考以下文章

Pandas 根据列中的最小值到最大值对行进行重新排序

MySql怎样获取一列中最大值

根据Excel中的逻辑从2列中检索最大数据

SQL 根据最大​​列获取行

为另一列中的每个值选择一列中的最大值[重复]

从python中的数据框行获取最大值[重复]