如何为每个具有不同外键的记录选择最新记录

2nbm6dog  于 2021-06-15  发布在  Mysql
关注(0)|答案(1)|浏览(335)

这个问题在这里已经有答案了

检索每个组中的最后一条记录-mysql(29个答案)
两年前关门了。
我有一张表,结构如下。

+--+------+---+-------------------+
|id|cardId|elo|timestamp          |
+--+------+---+-------------------+
|1 |000ac9|150|2018-12-19 17:49:16|
|2 |000ac9|160|2018-12-19 17:59:16|
|3 |000ad9|140|2018-12-19 18:21:16|
|4 |000ac9|130|2018-12-19 17:59:16|
|5 |000ad9|260|2018-12-19 19:01:16|
+--+------+---+-------------------+

我想要最新的 elo 对于每个 cardId .
我试过使用与众不同的关键词,但这并不总是给我最新的数据库条目。
我期望有如下的事情。

+--+------+---+-------------------+
|id|cardId|elo|timestamp          |
+--+------+---+-------------------+
|4 |000ac9|130|2018-12-19 17:59:16|
|5 |000ad9|260|2018-12-19 19:01:16|
+--+------+---+-------------------+
dkqlctbz

dkqlctbz1#

你可以用 ROW_NUMBER() 窗口函数,mysql 8.x中提供:

select * from (
  select
    id,
    cardId,
    elo,
    timestamp,
    row_number() over(partition by cardId order by timestamp desc) as rn
  from my_table
) x
where rn = 1

相关问题