Извините за публикацию чего-то, что, вероятно, очевидно, но у меня нет большого опыта работы с базой данных. Любая помощь будет принята с благодарностью - но помните, я новичок: -)
У меня есть такая таблица:
Table.fruit
Тип ID Xcoordinate Ycoordinate Вкус Фруктовый
1 яблоко 3 3 хорошо 1,5
2 Оранжевый 5 4 Плохой 2,9
3 яблоко 7 77 средний 1,4
4 Банан 4 69 Плохо 9,5
5 Груша 9 15 Средняя 0,1
6 Apple 3 38 Хорошо -5,8
7 яблоко 1 4 хорошо 3
8 Банан 15 99 Плохо 6,8
9 Груша 298 18789 Средняя 10,01
………………
1000 Apple 1344 1388 Bad 5
………………
1958 Банан 759 1239 Хорошо 1
1959 Банан 3 4 Средний 5,2
Мне нужно:
Стол, который дает мне
n (например, n = 5) ближайших точек к КАЖДОЙ точке в исходной таблице, включая расстояние
Таблица 5 ближайших (обратите внимание, что расстояния являются поддельными). Таким образом, итоговая таблица имеет ID1, ID2 и расстояние между ID1 и ID2 (к сожалению, пока нельзя публиковать изображения).
ID.Fruit1 ID.Fruit2 Расстояние
1 1959 1
1 7 2
1 2 2
1 5 30
1 14 50
2 1959 1
2 1 2
………
1000 1958 400
1000 ххх ххх
………
Как я могу это сделать (в идеале с управлением SQL / базой данных) или в ArcGis или аналогичной? Есть идеи?
К сожалению, моя таблица содержит 15000 наборов данных, поэтому итоговая таблица будет иметь 75000 наборов данных, если я выберу n = 5.
Любые предложения приветствуются.
EDIT:
Большое спасибо за ваши комментарии и предложения. Позвольте мне немного остановиться на этом:
Первый предложенный метод - это сканирование всей таблицы методом «грубой силы», отрисовывающее огромные файлы или, скорее всего, сбои, верно?
Теперь фрукт - это всего лишь фиктивная, реальная таблица содержит идентификатор исправления, номинальные атрибуты («типы фруктов» и т. Д.), Пространственные столбцы X и Y (в Гауссе-Крюгере) и некоторые числовые атрибуты.
Теперь, я думаю, есть способ закодировать «ограничивающий прямоугольник», поэтому вычисление расстояний выполняется для моей рассматриваемой точки (скажем, 1) и для любой другой точки в квадрате с определенной длиной ребра. Я могу представить (удаленно) кодирование или запрос для этого, но как мне заставить скрипт сделать это для КАЖДОГО пункта в моем столбце идентификатора. Насколько я понимаю, это должно либо создать «подтаблицу» для каждой записи / точки в моем «Table.Fruit», содержащую все точки в квадрате вокруг записи / точки с добавленным полем расстояния, либо одну большую новую таблицу ( "Table.5nearest"). Надеюсь, в этом есть какой-то смысл. Есть идеи? Еще раз спасибо