powered by simpleCommunicator - 2.0.61     © 2026 Programmizd 02
Целевая тема:
Создать новую тему:
Автор:
Закрыть
Цитировать
Форумы / PostgreSQL [игнор отключен] [закрыт для гостей] / Запрос с агрегатной функцией
4 сообщений из 4, страница 1 из 1
Запрос с агрегатной функцией
    #38679787
alex-tambovsky
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Добрового дня!

Суть есть таблица ships и таблица ports у них есть координаты, нужно получить id ближайшего порта, который находится на расстоянии меньше чем заданное или NULL если таких нет, смог только получить расстояние:
Код: plsql
1.
2.
3.
4.
SELECT MIN((((s.ship_coordinates).latitude - (p.port_coordinates).latitude) ^ 2 + 
((s.ship_coordinates).longitude - (p.port_coordinates).longitude) ^ 2) ^ 0.5) FROM ports p
CROSS JOIN ships s
WHERE s.ship_mmsi = 218098000;



А как отфильтровать по условию по колонке min не могу понять, пробовал сделать через GROUP BY и HAVING тоже что-то не то получается.
...
Рейтинг: 0 / 0
Запрос с агрегатной функцией
    #38679806
LeXa NalBat
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
alex-tambovsky,

SELECT min(_expression_) FROM ports p CROSS JOIN ships s WHERE s.ship_mmsi = 218098000;

SELECT p.* FROM ports p CROSS JOIN ships s WHERE s.ship_mmsi = 218098000 ORDER BY _expression_ LIMIT 1;
...
Рейтинг: 0 / 0
Запрос с агрегатной функцией
    #38679849
alex-tambovsky
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
LeXa NalBat, спасибо понял!
...
Рейтинг: 0 / 0
Запрос с агрегатной функцией
    #38680292
Sergei.Agalakov
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Ваша формула для этой задачи неверна.
Если у вас стоит PostGIS, то используйте его ST_Distance_Sphere .
Если нет, то считайте по формулам из Длина дуги большого круга
...
Рейтинг: 0 / 0
4 сообщений из 4, страница 1 из 1
Форумы / PostgreSQL [игнор отключен] [закрыт для гостей] / Запрос с агрегатной функцией
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


Просмотр
0 / 0
Close
Debug Console [Select Text]