gpt4 book ai didi

mysql - SQL - 计算两行之间的差异并放入另一列

转载 作者:行者123 更新时间:2023-11-29 06:51:10 25 4
gpt4 key购买 nike

我有一个 MySQL 表,其中包含一个日期、一个来源、一些数据,例如facebook 粉丝和第三列,其中应包含对前一天的更改。

表格如下所示:

Date        |  Source  | fans | new fans
2013-02-02 | Facebook | 100 | -
2013-02-02 | Twitter | 60 | -
2013-02-03 | Facebook | 120 | -
2013-02-03 | Twitter | 62 | -
2013-02-04 | Twitter | 65 | -
2013-02-04 | Facebook | 130 | -
2013-02-05 | Facebook | 145 | -
2013-02-05 | Twitter | 70 | -

sql 查询应该把它变成这样:

Date        |  Source  | fans | new fans
2013-02-02 | Facebook | 100 | -
2013-02-02 | Twitter | 60 | -
2013-02-03 | Facebook | 120 | 20
2013-02-03 | Twitter | 62 | 2
2013-02-04 | Twitter | 65 | 3
2013-02-04 | Facebook | 130 | 10
2013-02-05 | Facebook | 145 | 15
2013-02-05 | Twitter | 70 | 5

如何计算源的两天之间的差异?

最佳答案

您可以使用 UPDATE JOIN 来完成; ab 是计算两者之间差异的两行,而 c 被 LEFT 加入以确保 之间没有行ab

UPDATE TableA AS a
JOIN TableA b
ON a.`Source` = b.`Source` AND a.`Date` > b.`Date`
LEFT JOIN TableA c
ON a.`Source` = c.`Source` AND a.`Date` > c.`Date` AND c.`Date` > b.`Date`
SET a.`new fans` = a.`fans` - b.`fans`
WHERE c.`Date` IS NULL

An SQLfiddle for testing

请注意,这将更新您的表中的数据,并且您应该始终在运行来自 Internet 上随机人员的 SQL 更新之前进行备份:)

关于mysql - SQL - 计算两行之间的差异并放入另一列,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/15337772/

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