Основные математические операции с SUM () - неожиданные значения - PullRequest
1 голос
/ 11 июля 2019

у нас возникла эта проблема: обновленная версия MariaDB Columnstore с 1.2.2 до 1.2.4 и чепуха началась.

Мыу этих столбцов col1, col2 оба DECIMAL(15,3) уже был рабочий запрос для вычисления этих двух столбцов (см. псевдоним A), и это не правильно вычислялось, когда col2 имел нулевую сумму - после обновления БД.Псевдоним B был первым подходом, который не помог.И C было решением для правильной работы.

Я хочу знать объяснение, почему это произошло и чем вызвано такое поведение.

SELECT
id,
SUM(col1) AS c1,
SUM(col2) AS c2,
SUM(col1 - col2) AS A,
SUM(CAST(col1 AS DOUBLE) - CAST(col2 AS DOUBLE)) AS B,
SUM(CAST(col1 AS DECIMAL(15,3)) - CAST(col2 AS DECIMAL(15,3))) AS C
FROM table GROUP BY id

1.2.2:

+----+----------+--------+-----------+
| id |    c1    |   c2   |     A     |
+----+----------+--------+-----------+
|  1 | 1199.940 |  0.000 |  1199.940 |
|  2 |  979.860 | 69.990 |   909.870 |
+----+----------+--------+-----------+

1.2.4 с дополнительными суммами

+----+----------+--------+-----------------------+---------+-----------+
| id |    c1    |   c2   |           A           |    B    |     C     |
+----+----------+--------+-----------------------+---------+-----------+
|  1 | 1199.940 |  0.000 | -9223372036853575.868 |       0 |  1199.940 |
|  2 |  979.860 | 69.990 |               909.870 |  909.87 |   909.870 |
+----+----------+--------+-----------------------+---------+-----------+
...