我有一个纵列骑行距离公里,我尝试了以下方法:
SELECT ride_distance_km
FROM ride_data
HAVING ride_distance_km BETWEEN 1.1*min(ride_distance_km) and 0.9*max(ride_distance_km);
查询正在运行,但我得到0个结果,这是错误的。
尝试了where而不是have,查询没有运行。
查看随附的照片,我希望过滤掉1.2公里,28.06公里和30.13公里的车程(对于这个具体的数据当然)
谢谢你的帮助
1条答案
按热度按时间nnt7mjpx1#
Having
没有Group by
如果不在完整表达式上使用聚合函数,则没有意义。Having
在聚合阶段之后应用,如果要筛选聚合结果,则可以使用。Having ride_distance_km BETWEEN ...
将无法确定的行值ride_distance_km
考虑比较!我相信它不是标准的sql,但是由于mysql的(mis)特性,它是允许的。但是,不能保证它会给出正确的结果(如上所述)。一种方法是确定
Min()
以及Max()
派生表中的值。然后,我们可以利用这些聚合值在连接内部进行进一步过滤On
条款。请尝试以下查询: