MySQL如何在sum之间使用减法

时间:2018-06-03 13:13:50

标签: mysql sql database sum

我的表格有列"排名(如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           ..                                  ..
..    ..         ..           ..                                  ..

感谢任何人。

1 个答案:

答案 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;