В вашем запросе есть ошибки округления, которые являются результатом арифметики с плавающей точкой.
Если вы попробуете этот запрос
SELECT -1 + ( 0.793521289617132 * 0.793521289617132 + 0.608542490648241 * 0.608542490648241 * cos( 0.235244203230056 - 0.235244203230056 ) )
, вы получите 6.66133814775094e-016
.Итак, вы пытаетесь сделать
SELECT 6371 * acos( 1 + 6.66133814775094e-016 )
, что, очевидно, не сработает, потому что acos
определено только в домене [-1,1].
Я незнаю, что именно вы пытаетесь выполнить, но вам нужно переделать свои вычисления, например, проверить, не вышел ли параметр для acos, а затем установить соответствующее значение, например, так:
ACOS( IF(val BETWEEN -1 AND 1, val, SIGN(val))