gpt4 book ai didi

浮点字段上的 MySQL GROUP BY

转载 作者:行者123 更新时间:2023-11-29 04:26:07 26 4
gpt4 key购买 nike

我有一个包含以下列的表格:

ID int, DISTANCE float, EVENT Varchar

我想要实现的是选择所有数据,但按事件和距离字段分组(即删除相同距离的重复事件)。

我看到的问题是 Distance 列是一个 float ,因此 GROUP BY 可能不会按预期运行。大多数(我说的是大多数)数据都存储到小数点后 3 位,这是我想要分组的标准。

示例数据:

ID,距离,事件

1, 0.001, A
2, 0.002, A
3, 0.002, A
4, 0.002, B
5, 0.003, C
6, 0.0035,C

所以结果看起来像:

1, 0.001, A
2, 0.002, A
4, 0.002, B
5, 0.003, C

最佳答案

您可以使用 CAST() 将小数转换为字符串,并且只使用转换后的字符串 ("x.xxx") 的前 5 个字符,您然后可以使用 GROUP BY 进行分组:

例如:

SELECT
ID,
CAST(Distance AS CHAR(5)) AS DistanceGroup,
Event
FROM
yourtbl
GROUP BY
DistanceGroup,
Event

编辑:您还可以在 Distance 字段上使用 TRUNCATE(),这实际上在性能方面可能更好:

SELECT
ID,
TRUNCATE(Distance, 3) AS DistanceGroup,
Event
FROM
yourtbl
GROUP BY
DistanceGroup,
Event

关于 CAST() 的附加信息和 TRUNCATE()

关于浮点字段上的 MySQL GROUP BY,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/11112456/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com