MySQL 5.7 - 从特定的列组合中获取最新条目

MySQL 5.7 - getting latest entry(s) from specific combination of columns

亲爱的 MySQL 用户,您好!

我尝试解决这个问题已经有一段时间了,但我尝试的一切似乎都不起作用。 很抱歉,如果某个地方已经有了答案,但我知道如何搜索。

它不是那么容易用语言解释所以我用这个table(称为tbl)来解释它:

ID SerNo TypeOfChange InfoAboutChange TimestampOfChange
1 1 Name DN01 2020/12/01
2 1 IPAddress 192.168.1.1 2020/12/01
3 1 Name DNX1 2020/12/02
4 2 Name DN02 2020/12/04
5 2 IPAddress 192.168.1.2 2020/12/04
6 1 Name DNC1 2020/12/05

现在我想获取 each SerNo 的 latest 状态。它应该是这样的:

ID SerNo TypeOfChange InfoAboutChange TimestampOfChange
2 1 IPAddress 192.168.1.1 2020/12/01
6 1 Name DNC1 2020/12/05
4 2 Name DN02 2020/12/04
5 2 IPAddress 192.168.1.2 2020/12/04

我找到了如何获取每个 TypeofChange 的最新条目,但它是忽略设备 SerNo 的最新更改:

select TypeOfChange, max(TimestampOfChange) from tbl group by TypeOfChange

我需要组合 SerNo 分组,然后找到所有 typeofchangegroup them 并使用 max()

查找最新版本

但我完全不知道该怎么做。

谢谢您,祝您身体健康!

你可以这样做:

select t.*
from mytable t
where timestampofchange = (
    select max(t1.timestampofchange)
    from mytable t1
    where t1.typeofchange = t.typeofchange and t1.erno = t.serno
)