gpt4 book ai didi

mysql - 设置 Int16 溢出时的累加值

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

我有累积的输入值,这些值从 smallints 开始。
我从 Access 数据库中读取这些值,并将它们聚合到 MySQL 数据库中。

现在我面对的是累积的 smallint 类型的输入值,因此总是在增加。

Input            Required output
---------------------------------
0 0
10000 10000
32000 32000
-31536 34000 //overflow in the input
-11536 54000
8464 74000

我通过将原始数据插入黑洞表来处理这些值,并在黑洞的触发器中升级数据,然后再将其插入实际表中。

我知道如何存储以前的输入和输出,或者如果没有,如何选择最新(和最高)插入的值。
但是处理溢出的最简单/最快的方法是什么,所以我得到了正确的输出。

最佳答案

假设您有一个名为 test 的表,其主键名为 id 并且该列名为 value 然后只需执行以下操作:

SELECT
id,
test.value,
(SELECT SUM(value) FROM test AS a WHERE a.id <= test.id) as output
FROM test;

这将是输出:

------------------------
| id | value | output |
------------------------
| 1 | 10000 | 10000 |
| 2 | 32000 | 42000 |
| 3 | -31536 | 10464 |
| 4 | -11536 | -1072 |
| 5 | 8464 | 7392 |
------------------------

希望这对您有所帮助。

如果它不起作用,只需将您的数据转换为 INT(或 BIGINT 用于大量数据)。它不会造成伤害,而且现在内存很便宜。

关于mysql - 设置 Int16 溢出时的累加值,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/8757292/

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