WITH temp_user AS (
SELECT * ,ROW_NUMBER() over (partition by departmentName order by failureTime desc ) as 'row_number'
from user )
SELECT * from temp_user where row_number <= 2
我有sql语法,错误 1064 - 您的 SQL 语法有误;查看与您的 MySQL 服务器版本对应的手册,了解在 '<= 2' at line 4
附近使用的正确语法我想按部门分组,然后得到每个组的前 2 名用户。谢谢 我改变了描述,然后我得到了正确的结果。但我不知道为什么第一个 sql 不能工作。
select * from (
SELECT * ,ROW_NUMBER() over (partition by departmentName order by failureTime desc ) as 'row_number'
from user ) as b where b.row_number <=2