MYSQL SUM() 返回不正确的值。没有连接

Posted

技术标签:

【中文标题】MYSQL SUM() 返回不正确的值。没有连接【英文标题】:MYSQL SUM() returns incorrect value. No joins 【发布时间】:2021-08-06 10:30:02 【问题描述】:

列的简单 SUM() 存在问题

SELECT SUM('2021-06-30_value') FROM Test.a123;

返回 198058

将相同的数据拉入 Excel 并为每一行执行 python for 循环返回 2537737

【问题讨论】:

SUM 什么?您尚未选择列。我实际上不知道该查询会做什么 【参考方案1】:

这段代码:

SELECT SUM('2021-06-30_value') FROM Test.a123;

正在做一个字符串的总和,而不是一个列。字符串本身根据前导数字转换为数字,因此相当于:

SELECT SUM(2021) FROM Test.a123;

你大概想要一列,所以你需要反引号:

SELECT SUM(`2021-06-30_value`) FROM Test.a123;

永远不要在列名中使用单引号,因为它们会与字符串混淆。此外,您应该命名列,这样它们就不需要被转义。例如,我可能会建议 value_20210630

【讨论】:

我发现了this,正如我所怀疑的那样。我猜这种行为几乎适用于所有 RDBMS? 谢谢 Gordon,解决了这个问题。也非常感谢带有表名的指针 @roganjosh 。 . .大多数数据库将在算术上下文中使用的非数字字符串返回错误。因此,这在大多数数据库中都会失败。

以上是关于MYSQL SUM() 返回不正确的值。没有连接的主要内容,如果未能解决你的问题,请参考以下文章

Mysql 行计数为连接表返回不正确的值[关闭]

在 mysql 中使用 SUM 和多个连接

PHP mysqli_fetch_assoc 没有返回正确的值

使用左连接和不同的总和不正确的值

MySQL使用Group Bu返回不正确的值[重复]

MySQL聚合选择查询返回不正确的数据