SQL fehler keine Gruppenfunktion für einzelgruppe?
Ich soll in sql zählen wie viele Kunden die selbe adresse haben kann mir bitte jmd helfen?
Code: SELECT COUNT(a.plz), a.kunden_nr, b.kunden_nr
FROM Kunde a
JOIN kunde b
on a.plz = b.plz
2 Antworten
Ich würde das so machen:
SELECT adresse, COUNT(*) FROM kunden
GROUP BY adresse
HAVING COUNT(*) > 1
Für adresse setzt Du jeweils die Datenfelder (durch Komma getrennt) ein, die für das Mehrfache relevant sind:
plz, ort, strasse, hausnr
Verschiedene Schreibweisen der selben Adresse sollten nicht vorkommen, sie verfälschen die Zählung.
Habe ich ja auch geschrieben, dass das nicht richtig funktioniert, wenn unterschiedliche Schreibweisen für die selbe Adresse vorkommen. In meiner Datenbank habe ich für PLZ und Ort eine Tabelle mit ca 22000 Einträgen aller orte im Inland. Straßen muss man nicht vergleichen, wenn man den Namen hat. In meinen Mitgliederdaten (einmal 1500 und einmal 12000 Mitgliedern) kommen Fehler ganz selten vor, dann meistens im Zusammenhang mit Unzustellbarkeit.
Dir fehlt ein Group By
Du möchtest hier doch alle Zeilen zählen von plz
Was soll er denn mit kunden_nr anstellen?
Entweder lässt du die beiden Spalten einfach weg
SELECT COUNT(a.plz)
FROM Kunde a
JOIN kunde b
on a.plz = b.plz
Oder du hängst noch ein Group By hin.
http://stackoverflow.com/questions/2722408/how-to-use-count-and-group-by-at-the-same-select-statement
Was aber auch nur funktioniert, wenn die Daten (besonders die Strasse) absolut sauber erfasst sind und nicht die einen "strasse" und die anderen "str." schreiben - oder Rechtschreibefehler oder so ... :)