我的表格有列"排名(如ID)","纬度","经度"。现在我的选择就是这样:
if
我期望得到什么:
Rank Latitude Longitude Latitude_current_row_plus_next Longitude_current_row_plus_next
1 5 3 11 --5+6 7 --3+4
2 6 4 7 --6+1 6 --4+2
3 1 2 6 --1+5 7 --2+5
4 5 5 .. ..
.. .. .. .. ..
如何更改代码以使用减法而不是求和?
我需要从当前值中减去下一行的值。然后将ABS功能添加到结果
Rank Latitude Longitude Latitude_current_row_minus_next Longitude_current_row_minus_next
1 5 3 1 --abs(5-6) 1 --abs(3-4)
2 6 4 5 --abs(6-1) 2 --abs(4-2)
3 1 2 4 --abs(1-5) 3 --abs(2-5)
4 5 5 .. ..
.. .. .. .. ..
感谢任何人。
答案 0 :(得分:0)
您需要lead()
函数,但这在MySQL中不可用。
我建议使用left join
:
select t.*,
abs(t.latitude - tnext.latitude) as lat_diff,
abs(t.longitude - tnext.longitude) as lng_diff
from temp t left join
temp tnext
on t.rank = tnext.rank - 1;