Doppelter Group by - Zählung ohne gleiche Sätze

Helix

Neuer Benutzer
Beiträge
1
Liebe SQL-Spezialisten,

ich hoffe, meine Frage ist nicht zu banal, aber ich würde mich über eure kurzfristige Hilfe freuen. Mein Problem ist folgendes. Ich habe eine Tabelle wie diese im Beispiel (stark vereinfacht):

ArtikelNr Land
111 DE

222 DE
222 DE
222 CH

333 AT
333 AT

444 AT
444 CH
444 DE

Aufgabenstellung:
Ich möchte wissen, wieviele Artikel mehrfach vorkommen, die aber unterschiedliche Länder haben. I-Tüpfelchen wäre noch die Anzahl der verschiedenen Länder.

Das heißt, in meinem Beispiel fällt die ArtikelNr 111 (Nur einmal vorhanden) sowie Artikelnummer 333 (selbes Land) raus.

Dagegen gibt es bei 222 zwei und 444 drei verschiedene Länder.

Ergebnis sollte sein:
Der simple Fall wäre, dass ich als Ergebnis 222 und 444 erhalten.
Traumergebnis wäre:

ARtikel Nr Anzahl
222 2
444 3

Hinweis:

Nochmal am Beispiel 222 zum Verständnis. Es sind zwar drei EInträge, aber zweimal DE. Ich brauch nur die zwei unterschiedlichen Länder. Daher als Ergebnis zwei.



Kann mir jemand helfen?


Vielen Dank schon im Voraus für die Unterstützung und Mühen.


Grüße HELIX
 
Werbung:
Code:
test=*# select * from helix ;
 artikel | land
---------+------
     111 | de
     222 | de
     222 | de
     222 | ch
      33 | at
      33 | at
     444 | at
     444 | ch
     444 | de
(9 rows)

test=*# select artikel, count(distinct land) from helix group by artikel having count(distinct land) > 1 order by artikel;
 artikel | count
---------+-------
     222 |     2
     444 |     3
(2 rows)

test=*#
 
Zurück
Oben