🔥 SQL-задача: ближайшие точки с подвохом

Карта размером 100 × 100 замкнута: переход вправо от x = 100 возвращает к x = 0. По вертикали действует то же правило.

CREATE TABLE points (
id INT PRIMARY KEY,
x INT,
y INT
);

INSERT INTO points VALUES
(1, 1, 1),
(2, 99, 99),
(3, 50, 50),
(4, 52, 52);


Напишите запрос, который найдёт все пары точек с минимальным расстоянием по прямой с учётом переходов через границы.

Условия:

⏺️ точку нельзя сравнивать с собой;
⏺️ пары (1, 2) и (2, 1) считаются одной;
⏺️ при одинаковом минимуме выведите все пары;
⏺️ результат: id1, id2, distance.

Обычная формула расстояния без учёта границ даст неверный ответ
Просмотры: 33
Открыть в MAX Сообщить о неточности

Сообщить о неточности

Опишите, что нужно исправить. Если есть источник, добавьте ссылку.

Вы покидаете datool.ru

Ссылка ведёт на внешний сайт. datool.ru не отвечает за его содержимое — проверьте адрес, прежде чем вводить пароли или платёжные данные.

Переход через 10 с

Перейти