mysql - 如何从数据库mysql中选择特定列中具有相同且最新值的所有行

标签 mysql sql database

我想选择特定列中具有相同且最新时间的所有行,即 time1。下图简要介绍了我的问题。请指导我。预先感谢您。

enter image description here

最佳答案

这是一个依赖于窗口函数 RANK() 的解决方案,自 MySQL 8.0 起可用:

SELECT *
FROM (SELECT id, name, time1, RANK() OVER(ORDER BY time1 DESC) rnk FROM mytable) x
WHERE rnk = 1

内部查询为每条记录分配一个排名,按时间降序排序;排名靠前的排名相同,1。然后外部查询仅过滤排名为 1 的记录。

关于mysql - 如何从数据库mysql中选择特定列中具有相同且最新值的所有行,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/55428687/

相关文章:

c# - 使用 SQL 身份验证处理连接字符串

java - 只是想知道我的 ListView 是否将用户引导到每个项目的新屏幕单击

php - 我的 php 登录表单有什么问题?

c++ - mysql-connector-c++ 8.0 连接被拒绝

sql - 缓慢的 SQL 性能

c# - '<name>' 中的未知列 'where clause'

删除大表中的记录时MySQL很慢

mongodb - MongoDB 中的自定义索引比较器

MySQL - 计算在另一个表中具有条目的元素(内连接)

mysql - SQL(也许是基本的)- 具有 3 个表的查询