Суммарные значения SQLite - PullRequest
0 голосов
/ 05 июля 2019

Когда я пытаюсь агрегировать цену, возвращаемое значение усекается и обрезает значимые значения. Например, когда я использую sum () или total () для агрегирования цены, вместо 12,000.00 возвращается 12.

Я использовал и sum (), и total (), а также пытался разыграть число как число с плавающей точкой. Столбец имеет тип REAL.

select "Extended Price" 
from ReqData 
where "PR ID" = 11111111 
group by "PR ID";

Возвращает 12 000,00

select sum("Extended Price") 
from ReqData 
where "PR ID" = 11111111 
group by "PR ID";

Возвращает 12.

Вывод DBeaver

1 Ответ

0 голосов
/ 05 июля 2019

Проблема в том, что вы вставили значение столбца, например:

12,000.00

Это распознается в SQLite как TEXT, поскольку оно содержит запятую.Измените значение на:

12000

или

12000.00

Когда значение TEXT используется для выполнения арифметических операций, таких как сложение, вычитание или даже сравнение, SQLite пытается преобразовать его в числовой запускиз начальных символов и, если это вообще невозможно, возвращается 0.Таким образом, '12a' будет преобразовано в 12, 'abc' будет преобразовано в 0, поэтому в вашем случае '12,000.00' будет преобразовано в 12.

...