Warning: file_get_contents(/data/phpspider/zhask/data//catemap/8/mysql/66.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
LEAD()窗口函数在MYSQL工作台中不工作_Mysql_Sql_Subquery_Mysql Workbench_Window Functions - Fatal编程技术网

LEAD()窗口函数在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)(否则,结果可能会不同-但在这种情况下,窗口函数的结果并不稳定) 您还可以使用聚合

这里是一个时间戳字段,这在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)
(否则,结果可能会不同-但在这种情况下,窗口函数的结果并不稳定)

您还可以使用聚合而不是限制:

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