Java MySQL求和函数,用于对所有的钱求和
我需要对基础DB的所有资金进行合计 我有两个选择Java MySQL求和函数,用于对所有的钱求和,java,mysql,mariadb,Java,Mysql,Mariadb,我需要对基础DB的所有资金进行合计 我有两个选择 使用SQL SUM()函数对其进行求和或 获取内存中所有金钱和金额的列表 考虑到更好的性能,我认为使用第一个选项会更好,但我想知道是否可以安全地使用求和函数来求和货币金额,而不会失去精度 如果是第二个选项,我会使用Java的BigDecimal来表示货币 返回最精确表达式数据类型中所有表达式值的总和 SUM不会像本地处理器那样丢失精度,您可以安全地使用它 编辑: 我错误地发布了一些T-SQL文档,以下是mySQL文档: SUM()和AVG()
因此,与T-SQL相同,它将选择最精确的数据类型。这取决于您使用的数据类型。 如果您使用浮点数,mysql会丢失一些精度(请参阅和),如果您使用小数,那么您应该没问题。如果您使用
十进制(m,2)
(假设您的货币为小数点后两位),mysql的SUM()
将比提取所有行并将它们铲入客户端更精确、更快,然后使用类似的库执行等效的算法
AVG
在任何情况下都存在精度问题。我不确定,但我相信求和行为是基于求和值的数据类型。为什么不安全?许多银行系统正在使用它,并且仍在工作…当您执行select时,表将被锁定以进行插入/更新,这意味着“安全”,这是一个完全不同的数据库。如果您能够提供MySQL文档而不是T-SQL,那将更为感激。谢谢您的回答