Найти километровый участок с наибольшей разницей
Я столкнулась с проблемой в Postres. У меня есть таблица "Information" со столбцами: id, id_Brand, date, time, id_TypeOfAccident, longitude, latitude ,victims, geometry. Мне нужно найти километровый участок с наибольшей разницей между количеством аварий днем и ночью. Я не понимаю, как найти участок дороги. Пыталась сделать такой запрос, но безуспешно.
SELECT info1.latitude, info1.longitude, info2.latitude, info2.longitude
FROM "Information" AS info1, "Information" AS info2
WHERE info1.ID <><> info2.ID
AND (SELECT 111.111 * DEGREES(
ACOS(LEAST(1,0, COS(RADIANS(info1.latitude)))
* COS(RADIANS(info2.latitude))
* COS(RADIANS(info1.longitude - info2.longitude))
+ SIN(RADIANS(info1.latitude))
* SIN(RADIANS(info2.latitude)))))
FROM "Information" AS info2) <= 1
Ответы (1 шт):
Автор решения: Akina
→ Ссылка
Пример реализации финального отбора (после построения маршрута, с расстояниями от исходной точки):
WITH cte AS (
SELECT *,
COUNT(*) OVER (ORDER BY point_coordinate ASC
RANGE BETWEEN 1 PRECEDING AND CURRENT ROW) cnt
FROM test
)
SELECT *
FROM cte
ORDER BY cnt DESC
FETCH FIRST 1 ROW WITH TIES