Hallo,
In einem Raster von 10000x10000 habe ich zufällig 4791 Punkte verteilt.
Nun möchte ich wissen, welche Punkte Nachbarpunkte in einem gewissen Umkreis, bzw. umquadraht aufweisen. Zur Zeit hab ich das Ganze in einer Datenbanktabelle mit den Spalten id, x, y abgelegt und die Prüfung mache ich wie folgt:
SELECT
r1.id,
r2.id
FROM
positions r1
JOIN
positions r2
ON
r1.id < r2.id
WHERE
ABS( r1.x - r2.x ) < 5
AND
ABS( r1.y - r2.y ) < 5
https://forum.selfhtml.org/?t=182509&m=1207661 behandelt das gleiche Problem.
Schon mal probiert, Deine WHERE-Klausel in die Join-Bedingung einzubringen.
Ach ja:
Im Mittel hast Du übrigens die Hälfte vergessen: die Punkte, deren id kleiner ist als die des Referenzpunktes. Betrachte zum Beispiel als Ausgangspunkt den Punkt mit der größten id: Deine Ergebnismenge wird leer sein.
Freundliche Grüße
Vinzenz