当前位置: 代码网 > it编程>数据库>Mysql > MySQL进行group by字段返回大量异常结果的问题解决

MySQL进行group by字段返回大量异常结果的问题解决

2024年05月26日 Mysql 我要评论
问题看这条sqlch2o这个字段的取值只有1,2,3,正常进行group by 分类累加统计返回结果应该是这样:[ { "ch2o": 2.0, "insuffici

问题

看这条sql

ch2o这个字段的取值只有1,2,3,正常进行group by 分类累加统计返回结果应该是这样:

[
    {
        "ch2o": 2.0,
        "insufficient_weight": 142,
        "normal_weight": 164,
        "overweight_level_i": 154,
        "overweight_level_ii": 186,
        "obesity_type_i": 173,
        "obesity_type_ii": 177,
        "obesity_type_iii": 114
    },
    {
        "ch2o": 3.0,
        "insufficient_weight": 46,
        "normal_weight": 40,
        "overweight_level_i": 76,
        "overweight_level_ii": 57,
        "obesity_type_i": 110,
        "obesity_type_ii": 38,
        "obesity_type_iii": 149
    },
    {
        "ch2o": 1.0,
        "insufficient_weight": 84,
        "normal_weight": 83,
        "overweight_level_i": 60,
        "overweight_level_ii": 47,
        "obesity_type_i": 68,
        "obesity_type_ii": 82,
        "obesity_type_iii": 61
    }
]

但是我实际运行查询到的结果是这样:

返回的数据非常多,这不合理,经过仔细排查发现了出现该问题的原因。

原因

这样一看该列存储数据值只有1,2,3为啥会group by出那么多数据呢

原来是该列的数据类型设置成了浮点型

在 mysql 中,如果你使用浮点型字段进行 group by 操作,mysql 会尽可能地对浮点数进行分组。但是,由于浮点数在计算机中的表示方式可能会导致精度问题,因此可能会出现意外的结果。

解决方案

把字段类型改成整形或者字符串

查询结果就正常了:

到此这篇关于mysql进行group by字段返回大量异常结果的问题解决的文章就介绍到这了,更多相关mysql group by返回异常内容请搜索代码网以前的文章或继续浏览下面的相关文章希望大家以后多多支持代码网!

(0)

相关文章:

版权声明:本文内容由互联网用户贡献,该文观点仅代表作者本人。本站仅提供信息存储服务,不拥有所有权,不承担相关法律责任。 如发现本站有涉嫌抄袭侵权/违法违规的内容, 请发送邮件至 2386932994@qq.com 举报,一经查实将立刻删除。

发表评论

验证码:
Copyright © 2017-2025  代码网 保留所有权利. 粤ICP备2024248653号
站长QQ:2386932994 | 联系邮箱:2386932994@qq.com