我有以下SQL查询.
SELECT SUM(final_insurance_total) as total
FROM `leads`
GROUP BY leads.status
Run Code Online (Sandbox Code Playgroud)
我在前导表中有一行数据,其final_insurance_total值为458796. final_insurance_total的数据类型为float.
出于某种原因,MySQL将单行汇总为"458796.375".
如果我将查询更改为
SELECT (final_insurance_total) as total
FROM `leads`
GROUP BY leads.status
Run Code Online (Sandbox Code Playgroud)
返回正确的值.世界上到底发生了什么?
FLOAT不保证任何计算的精度。如果您使用简单的SELECT,则不进行任何计算,因此您将获得原始值。但如果使用SUM(),即使一行,也至少执行一次加法 ( 0 + current_value)。
你真的需要吗FLOAT?例如,如果有 2 位十进制数字,则可以使用 INT 并在所有INSERTs 之前将所有值乘以 100。计算结果时SELECT,您将除以 100。
| 归档时间: |
|
| 查看次数: |
1622 次 |
| 最近记录: |