MySQL根据列中的最大值获取行

问题描述

我有一个MysqL数据库,该数据库当前正在从CSV文件添加新数据。 除某些列(即last_status)外,某些行是重复的。

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

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

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

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

ID,...(50 other columns)
100,...

我已经尝试过了:

    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中可以用来解决此问题的问题创建一个View。

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

解决方法

如果我理解正确,不仅内部会满足您的需求?

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