Я пытаюсь передать массив координат широты и долготы через функцию radians () в AWS Афина, но получаю ошибку
Unexpected parameters (array(double)) for function radians. Expected: radians(double)
Мне нужно иметь возможность передавать массивы через lat_array и long_array, чтобы проверить, находится ли каждый набор координат в пределах 1 мили от каждой широты и долготы, заданной в my_table.
WITH
target_addresses AS (
SELECT ARRAY[CAST(lat AS real)] AS lat,
ARRAY[CAST(long AS real)] AS long
FROM addresses
)
SELECT user_id,
( 3959 *
ACOS(
COS( RADIANS( lat_array ) ) *
COS( RADIANS( latitude ) ) *
COS( RADIANS( longitude ) - RADIANS( long_array ) ) +
SIN( RADIANS( lat_array ) ) *
SIN( RADIANS( latitude) )
)
) AS distance
FROM
my_table,
(SELECT array_agg(la) AS lat_array,
array_agg(lo) AS long_array
FROM target_addresses
CROSS JOIN UNNEST(lat) AS t(la)
CROSS JOIN UNNEST(long) AS t(lo)) target_params
HAVING distance <= 1
ORDER BY distance ASC;
Есть ли лучший способ запроса для достижения этого результата?