gpt4 book ai didi

MySQL 如何在求和中使用减法

转载 作者:行者123 更新时间:2023-11-30 21:43:10 24 4
gpt4 key购买 nike

我有一个包含列“排名(如 ID)”、“纬度”、“经度”的表格。现在我的选择是这样的:

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 .. ..
.. .. .. .. ..

我期望得到什么:

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 .. ..
.. .. .. .. ..

如何更改代码以使用减法而不是求和?

我需要从当前值中减去下一行的值。然后在result中添加ABS函数

SELECT   a.rank,a.latitude,a.longitude,
(SELECT SUM(latitude) FROM temp
WHERE rank <= a.rank + 1 AND rank >= a.rank) as latitude_current_row_plus_next,
(SELECT SUM(longitude) FROM temp
WHERE rank <= a.rank+1 AND rank >= a.rank) as longitude_current_row_plus_next
FROM temp a;

谢谢你。

最佳答案

您需要 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;

关于MySQL 如何在求和中使用减法,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/50666800/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com