SQL-Abfrage

BigBuisyB

Benutzer
Beiträge
9
Hallo zusammen,

zuerst einmal die Information, dass ich totaler Anfänger in Sachen SQL bin.

Ich habe eine Frage bezüglicher einer Tabellenabfrage.

Ich arbeite mit einer Tabelle die nur aus 3 Spalten besteht (Einwohner, PLZ, PLZ_2stellig)

Ich möchte mir nun Anzeigen lassen, wie viele Einwohner jeweils im 2stelligen PLZ Gebiet leben.

Bisher habe ich folgende Abfrage gebaut

select einwohner,plz_2stellig, sum(einwohner) from *tabellenname* where plz_2stellig is not null

group by einwohner, plz_2stellig;

Das Problem ist er summiert mir zwar die Einwohnerzahl, allerdings sind die summierten Zahlen in der Ausgabe noch unterteilt, heißt mir werden beispielsweise bei der 2stelligen PLZ 56 über 10 summierte Ergebnisse angezeigt.
Mit was für einer Abfrage kann ich mir die insgesamten Zahlen für die jeweilige 2stellige PLZ anzeigen lassen?

Ich hoffe und denke ihr könnt mir da weiterhelfen :)

VG

BigBuisyB
 
Werbung:
moin moin,

ich würde mal nach Group By googlen... ich glaube das könnte hier helfen. Ist aber nur aus der Hüfte geschossen da ich weder code noch Datensätze kenne :)
 
Falls Deine Spalte 'PLZ_2stellig' die ersten 2 Stellen von 'PLZ' enthält so ist dies schonmal Murks, weil redundant. Den Hint auf GROUP BY hast ja schon, Dein SQL sieht eigentlich sogar korrekt aus.
 
Hi,
erst mal danke für die schnellen Antworten :) Der Grund warum ich zusätzlich zu PLZ noch eine PLZ_2stllig Spalte erstellt habe ist der, dass ich in Verbindung mit Qlik eine Verteilung der Kunden im Verhältnis zur Bevölkerungsdichte darstellen soll. Damit ich bei Qlik die einzelnen Regionen abbilden kann benötige ich de 2stelligen PLZ.

Zurück zu meinem Problem. Der Output sieht wie folgt aus (nur ein Ausschnitt):
Einw. PLZ2 sum(Einw.)
14784 55 14784
2977 55 2977
16539 56 16539
3173 56 3173
6681 56 6681
5036 56 5036
4381 56 4381
1908 56 1908
2713 56 2713
3012 56 3012
2403 56 2403
5845 56 5845
11747 56 11747
4946 56 4946
29027 56 29027

Ist es jetzt beispielsweise möglich das er mir nur einmal die 2stellige PLZ 56 anzeigt und alle dazu gebildeten Summen noch einmal zu einer Zahl summiert?

VG

BigBuisyB
 
Wald, Bäume, ...

Laß einfach die Ausgabe der Einwohner weg (erste Spalte), das ist Bullshit, Du willst nur die Teil-PLZ und die Summe.

Was machst Du, wenn Du statt der 2stelligen nur die erste Stelle oder aber 3 Stellen haben willst? Richtig, Du ermittelst das von der kompletten PLZ. Und genau so kannst Du das auch mit der 2stelligen PLZ machen. Oder in kurz: lasse die Spalte PLZ_2stellig weg, auch das ist Bullshit. Arbeite beim Select mit substring() von der kompletten PLZ und gut ist.
 
Danke :p
Das mit dem Weglassen der Einwohner hat mir schon geholfen. Die Substring Befehle muss ich mir noch angucken, da ich wie gesagt totaler Neuling in SQL bin.
Trotzdem nochmal Danke für die Hilfe :)

VG
 
Code:
test=*# select * from bigbuisyb ;
  plz  | einwohner
-------+-----------
 12345 |  27120
 12000 |  4711
 12012 |  5432
 98765 |  112233
(4 Zeilen)

test=*# select substring(plz,1,1), sum(einwohner) from bigbuisyb group by 1;
 substring |  sum   
-----------+--------
 9  | 112233
 1  |  37263
(2 Zeilen)

test=*# select substring(plz,1,2), sum(einwohner) from bigbuisyb group by 1;
 substring |  sum   
-----------+--------
 98  | 112233
 12  |  37263
(2 Zeilen)

test=*# select substring(plz,1,3), sum(einwohner) from bigbuisyb group by 1;
 substring |  sum   
-----------+--------
 987  | 112233
 120  |  10143
 123  |  27120
(3 Zeilen)

test=*# select substring(plz,1,4), sum(einwohner) from bigbuisyb group by 1;
 substring |  sum   
-----------+--------
 9876  | 112233
 1201  |  5432
 1200  |  4711
 1234  |  27120
(4 Zeilen)
 
Werbung:
Zurück
Oben