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根据列中的最大值获取行[重复]的主要内容,如果未能解决你的问题,请参考以下文章