gpt4 book ai didi

MySQL - 如何计算每行和字段的差异?

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

我在 MySQL 中有下表:

Date   | Item A   | Item B   | Item C   | Item D
------------------------------------------------
1/1/16 | 1 | 0 | 3 | 1
1/2/16 | 3 | 3 | 4 | 0
1/3/16 | 10 | 4 | 8 | 1
1/4/16 | 5 | 3 | 8 | 3

输出应该是一个新表,其中包含每个项目的值与前一天相比的差异。示例表的输出将是一个包含以下内容的新表:

Date   | Item A   | Item B   | Item C   | Item D
------------------------------------------------
1/2/16 | 2 | 3 | 1 | -1
1/3/16 | 7 | 1 | 4 | 1
1/4/16 | -5 | -1 | 0 | 2

我想用一个 MySQL 命令来实现这一点。我目前有一些类似的东西:

SELECT SUM(Item A) AS DIFF 
FROM my_table
WHERE date = '1/1/16'

它输出“1”。但这与我正在寻找的东西并不接近......

感谢您的帮助和意见。

最佳答案

要计算同一表的两行之间的差异,您需要将表与其自身连接起来,以便您可以在查询中获得同一行中两行的值。

测试它:

SELECT t1.ItemA, t2.ItemA, t1.ItemA-t2.ItemA AS DiffA, 
t1.ItemB, t2.ItemB, t1.ItemB-t2.ItemB AS DiffB
FROM my_table t1, my_table t2
WHERE t1.date = '1/2/16' AND
t2.date = '1/1/16'

注意:根据 ItemA 的确切字段类型,您可能需要执行此操作(在我的情况下需要):CAST(t1.ItemA ASsigned) - CAST (t2.ItemA AS 签名)AS DiffA

关于MySQL - 如何计算每行和字段的差异?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/37832796/

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