mysql - 如何从数据库mysql中选择特定列中具有相同和最新值的所有行
解决方案
这是一个依赖于 window function 的解决方案,RANK()
自 MySQL 8.0 起可用:
SELECT *
FROM (SELECT id, name, time1, RANK() OVER(ORDER BY time1 DESC) rnk FROM mytable) x
WHERE rnk = 1
内部查询为每条记录分配一个排名,按时间降序排序;最高的领带获得相同的排名,1
。然后外部查询仅过滤具有 rank 的记录1
。
推荐阅读
- oracle - pyspark 读取格式 jdbc 生成 ORA-00903: invalid table name 错误
- c++ - 异步控制线程执行时间
- angular - 字符串没有在打字稿中正确编码
- dynamics-crm - MSCRM 2016 OnPrem 解决方案-升级死锁与现有解决方案-补丁
- android - 阻止屏幕方向为手机的纵向并允许平板电脑的两个方向
- ios - 如何使用 MVVM 设计模式绑定对象?
- python - 如何将此字节码解码为常规的 .py 脚本?
- ionic-framework - 有没有办法读取 Ion-Segment 值以将它们传递给 Ion-Fab 以根据 SwitchCase 运行不同的功能?
- javascript - 我试图在滚动上产生视差效果,但让项目以相反的方式移动
- django - Django 无法登录(登录视图在登录时不返回 sessionid 的 set-cookie 标头)