Kristin: Doppelzählungen verhindern

Beitrag lesen

Hi Ilja,

ich kann jetzt falsch liegen, aber so kann das doch nicht klappen, oder?

habe nur die tabellen verwechselt, also joins richtig setzen und es geht.

SELECT l.kgz, l.name, (SELECT MIN(z.zahlen)
                        FROM plzgkz p
                        INNER JOIN zahlen z ON z.plz = p.plz1
                        WHERE substr(p.gkz, 1,5) = l.gkz
                       )
FROM landkreis l
;

hinter from landkreis l habe ich noch
WHERE l.gkz in (...) rangehängt

die Zahlen von jeder PLZ werden, wenn ich das richtig sehe auch nicht pro Landkreis summiert, sondern nur der minimale Wert verwendet.
Auch wenn ich den maximalen Wert verwende, stimmt das Ergebnis nicht, da nicht pro Landkreis addiert wird.

Warum benötigt diese Variante der Abfrage so lange?
Die Variante von mir, wo noch mehr INNER JOINs verwendet werden, benötigt ca. 6500 ms.
Sollte es nicht bei jeden weiteren JOIN langsamer werden?

Kristin