gpt4 book ai didi

mysql - 通过 MYSQL 查询减去值

转载 作者:行者123 更新时间:2023-11-29 02:22:52 25 4
gpt4 key购买 nike

快速提问,我现在无法理解:

我有一个表,叫做“liverace”,如下(节选):

racelap,pos,change,userid
1 1 0 21
1 2 0 12
1 3 0 18
2 1 0 18
2 2 0 21
2 3 0 12

基本上,我将几圈列为 racelap,其中每个用户(具有自己唯一的“userid”)根据一些微积分获得分配的位置(“pos”)。我在这里需要做的是拥有“变化”列,为每一圈和每个用户更新以反射(reflect)位置的变化。所以我必须比较每一圈和每个用户的每个位置,即它应该显示:

racelap,pos,change,userid
1 1 - 21
1 2 - 12
1 3 - 18
2 1 +2 18
2 2 -1 21
2 3 -1 12

第一圈没有变化,因为第 0 圈不存在。第 2 圈应该显示位置的变化。

我一直在尝试一些选择,但没有任何效果。提前致谢!

最佳答案

SELECT 
so1.`lap`,
so1.`pos`,
COALESCE(so2.pos - so1.pos, "-") as `change`,
so1.user_id
FROM
so so1
LEFT JOIN so so2
ON so2.lap = (so1.`lap` - 1)
AND so2.`user_id` = so1.`user_id`

按预期工作。

   lap     pos  change  user_id  
------ ------ ------ ---------
1 1 - 21
1 2 - 12
1 3 - 18
2 1 2 18
2 2 -1 21
2 3 -1 12

假设如下

CREATE TABLE `so` (
`lap` int(11) DEFAULT NULL,
`pos` int(11) DEFAULT NULL,
`user_id` int(11) DEFAULT NULL
) ENGINE=InnoDB

关于mysql - 通过 MYSQL 查询减去值,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/28369377/

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