Не знаю, как бы вы определили ближайшего соседа. Кажется, вы могли бы сделать разницу абсолютных значений между каждой метрикой и суммировать их. (Без абсолютного значения у вас могло бы быть две метрики, которые были бы далеко, но отменяли друг друга.)
Итак, ближайший сосед будет определен как имеющий самое низкое значение из этого квеста:
ABS(M1 - @M1) + ABS(M2 - @M2) + ABS(M3 - @M3) + ABS(M4 - @M4) + ABS(M5 - @M5)
Если это работает, тогда запрос будет:
SELECT TOP 5000 *
FROM YourTable
ORDER BY ABS(M1 - @M1) + ABS(M2 - @M2) + ABS(M3 - @M3) + ABS(M4 - @M4) + ABS(M5 - @M5)
Если вы хотите, вы также можете по-разному взвешивать каждую метрику:
SELECT TOP 5000 *
FROM YourTable
ORDER BY 2 * ABS(M1 - @M1) + 5 * ABS(M2 - @M2) + ABS(M3 - @M3) + 3 * ABS(M4 - @M4) + ABS(M5 - @M5)