1. Willkommen im Forum für alle Datenbanken! Registriere Dich kostenlos und diskutiere über DBs wie Mysql, MariaDB, Oracle, Sql-Server, Postgres, Access uvm
    Information ausblenden

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

Dieses Thema im Forum "Microsoft SQL Server" wurde erstellt von Helix, 2 Juli 2019.

  1. Helix

    Helix Neuer Benutzer

    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
     
  2. akretschmer

    akretschmer Datenbank-Guru

    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=*#
    
     
Die Seite wird geladen...

Diese Seite empfehlen

  1. Diese Seite verwendet Cookies. Wenn du dich weiterhin auf dieser Seite aufhältst, akzeptierst du unseren Einsatz von Cookies.
    Information ausblenden