LEAD()窗口函数在MYSQL工作台中不工作
这里是一个时间戳字段,这在MYSQL工作台中不起作用。我得到下面的错误LEAD()窗口函数在MYSQL工作台中不工作,mysql,sql,subquery,mysql-workbench,window-functions,Mysql,Sql,Subquery,Mysql Workbench,Window Functions,这里是一个时间戳字段,这在MYSQL工作台中不起作用。我得到下面的错误 (在此位置无效,应为EOF“;” 这里出了什么问题?我遗漏了什么吗?仅MySQL 8.0支持窗口函数。在早期版本中,一种解决方法使用相关子查询: SELECT x,y,z, LEAD(x) OVER(PARTITION BY y,z ORDER BY x) AS column FROM Table; 这在某种程度上假定没有重复的(x,y,z)(否则,结果可能会不同-但在这种情况下,窗口函数的结果并不稳定) 您还可以使用聚合
(在此位置无效,应为EOF“;”
这里出了什么问题?我遗漏了什么吗?仅MySQL 8.0支持窗口函数。在早期版本中,一种解决方法使用相关子查询:
SELECT x,y,z,
LEAD(x) OVER(PARTITION BY y,z ORDER BY x) AS column
FROM Table;
这在某种程度上假定没有重复的(x,y,z)
(否则,结果可能会不同-但在这种情况下,窗口函数的结果并不稳定)
您还可以使用聚合而不是限制:
select x, y, z,
(select t1.x from mytable t1 where t1.y = t.y and t1.z = t.z and t1.x > t.x order by t1.x limit 1) as lead_x
from mytable t
升级到较新版本的MySQL。是否有任何解决方法可以在此版本中实现相同的结果?对于给定的
y
,z
,是否可以使用重复的值?
select x, y, z,
(select min(t1.x) from mytable t1 where t1.y = t.y and t1.z = t.z and t1.x > t.x ) as lead_x
from mytable t