使用 with as grammer 来查找每个组的前 3 名用户,通过使用 row_number() 函数

问题描述 投票:0回答:0
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
mysql row-number
© www.soinside.com 2019 - 2024. All rights reserved.