我正在尝试使用SQL LAG函数来比较去年和今年的人口,然后计算增长。我正在使用的代码不断抛出错误代码#1064。我在 MAC 上使用 XAMPP 服务器。
我正在使用的代码不断抛出错误代码#1064。我在 MAC 上使用 XAMPP 服务器。我有人口值字段的城市代码、句号和数字。该表称为人口。
SELECT
city_code,
period,
numb
,LAG(numb,1,0)
OVER(ORDER BY period)
FROM population
我希望输出显示新列,其中包含前几年当前年份的人口计算结果以及后期的增长情况。
最佳答案
请尝试此查询。这是 row_number() 的替换,仅在 mysql 版本 8.0 中支持。对于mysql 5.7以下,使用变量生成row_num()
set @pos = 0;
set @pos2 = 0;
select t1.*, ifnull(t2.numb, 0) from (
select @pos:=@pos+1 as pos, city_code, period, numb from population order by period asc) t1
left join
(select @pos2:=@pos2+1 as pos, numb from population order by period asc) t2 on t2.pos = t1.pos - 1
关于mysql - SQL LAG 和 Over 函数返回错误 #1064,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/57403858/