如何在不使用会话变量的情况下在mysql 8.0版本下实现MySQL8.0 row_number()函数?
SELECT user_name,user_id
FROM (SELECT user_name,
user_id,
pkval,
RANK() OVER(PARTITION BY user_id ORDER BY pkval desc) rn
FROM usertable) t
WHERE rn = 1对于8.0版本以下的MySql的等效查询。如果我在mysql版本5.7im中执行此操作,
错误代码: 1064。您的SQL语法有错误;请检查与您的MySQL服务器版本对应的手册,以获得使用near‘(按pkval的user_id顺序分区) rn的正确语法。
从用户表‘在第5行0.047秒
发布于 2020-11-19 17:14:47
您可以使用子查询在最新的pkval上筛选每个user_id:
select user_name, user_id
from usertable t
where pkval = (
select max(t1.pkval) from usertable t1 where t1.user_id = t.user_id
)https://stackoverflow.com/questions/64916585
复制相似问题