我有一个查询:SELECT ID,Name,Distance FROM Station GROUP BY'Distance approximation'
在我的例子中,距离是一个双倍,我想将具有相同近似距离的所有元素组合在一起。例如,距离为212的element_1将与element_2位于同一组中,距离为240,但与300不在同一组中(差异大于50)。
由于
答案 0 :(得分:0)
一种方法是将距离除以50,使其成为整数,然后按该结果分组。
这样的事情:(未经测试)
SELECT floor(Distance/50) as [group], count(*) as count
FROM Station
GROUP BY floor(Distance/50)
这种方式的一个缺点是两个彼此接近的数字仍然可以在不同的组中。例如,249的距离与251不同。
由于任何此类分组都需要一些边界点,因此您需要明确自己的要求 - 然后可以设计算法。
答案 1 :(得分:0)
根据您的数据库,您可以按功能进行分组。
所以你可以做(非常简单)
之类的事情select round(distance/50) as approximate_distance, count(*)
from station
group by round(distance/50)
您可以根据自己的要求添加自己的功能。