Hello,
http://de.wikipedia.org/wiki/Häufungspunkt
hat mich auf den Lösungsansatz gebracht:"Definition: Sei a Element eines topologischen Raumes X und sei M eine Teilmenge von X. Man sagt a ist Häufungspunkt von M, wenn in jeder Umgebung von a ein Punkt von M liegt, der von a verschieden ist."
Erweitere Dein Tabellenformat um die Spalte "Umgebungs_Anzahl"
Bestimme die Größe der gewünschten Umgebung
Nimm die Koordinaten des Punktes und zähle in der DB alle Datensätze, die in dieser Umgebung liegen.Select count() as ANZAHL
from TABELLE
where (X between $xs-$umgebung and $xs+$umgebung) and
(Y between $ys-$umgebung and $ys+$umbegung);
OK, sowas in der Art habe ich mir schon ausgedacht.
Ich habe versucht mittels SubQuery die Ergebnismasse nochmals zu JOINen, was allerdings fehl schlug. Das Query dazu sah dann wie folgt aus:
SELECT *
FROM (
SELECT id, name, nachname, user.plz, user.ort, geodata.lg, geodata.bg
FROM user
JOIN geodata ON geodata.plz = user.plz
AND geodata.staat = user.country
GROUP BY user.id
ORDER BY geodata.lg, geodata.bg, plz ASC
) AS temptable
JOIN temptable ###<--- an der Stelle terminiert es geodata.temptable not exists.
AS altertable ON (temptable.bg
BETWEEN altertable.bg
AND altertable.bg +2)
AND (temp_table.lg
BETWEEN altertable.lg
AND altertable.lg +2)
GROUP BY temp_table.id
und war /ist rattenlangsam
Das Ergebnis trägst Du dann für den Satz ein.
Die Rechnung musst Du für jeden Satz durchführen. Das ergibt dann die Charts
über Umgebungs_Anzahl. Da musst Du nur noch einen Schwellwert festlegen, ab welcher
Umgebungs_Anzahl Du zusammfasst.
meine nächste Idee ist jetzt ein VIEW zu machen, und auf den dann das 2. Join, da ich aber bisher nicht mit VIEWs gearbeitet habe, weiß ich nicht wie resistent die Daten sind, und was passiert wenn dann z.b. zwei anfragen zeitgleich/nah gemachtwerden. wird dann ein 2.VIEWtable angelegt, oder der "alte" überschrieben?
Das ist jetzt bitte nur ein Rohentwurf.
Wahrscheinlich kann man bei neueren MySQL-Versionen (oder was war im Einsatz?) auch ein Update mit Subselect machen. Dann brauchst Du kein Script drum herum zu bauen ;-)
ich benutze momentan die aktuelle MySQL version (vor ein paar Tagen erst das Update gemacht)
Würde mich freuen, wenn Du die Lösung hier später veröffentlichen würdest.
ja, und ich würde mich freuen wenn ich eine "vernünftige" und fixe Lösung finden könnte/ würde :)
Harzliche Grüße vom Berg
http://www.annerschbarrich.deTom