[SQL] COUNT und DISTINCT kombinieren



  • Hiho zusammen !

    Ich hab grad ein kleines Problem. Ich habe eine Tabelle die in etwa so aussieht:

    Typ           Untertyp
    
    RB 1          RBBB1
    RB 1          RBBB1
    RB 1          RBBB3
    RB 1          RBBB9
    RB 2          ABBB5
    RB 2          ABBB5
    RB 3          CDDD4
    RB 3          CDDD5
    RB 3          CDDD6
    RB 4          DAAB4
    

    Ich brauche jetzt eine Abfrage die mir anzeigt wieviele verschiedene Untertypen es von jedem Typen gibt.
    Also genau so:

    RB1    3
    RB2    1
    RB3    3
    RB4    1
    

    Ich habe jetzt schon alles mögliche versucht, aber ich bekomme einfach keine gültige Kombination aus COUNT, DISTINCT und GROUP BY zusammen die mir genau dieses Ergebnis liefert.
    Kann mir da vielleicht jemand helfen ?

    Danke
    lG
    Gawan



  • SELECT t.typ, COUNT(*) FROM 
        ( SELECT DISTINCT untertyp, typ FROM table ) t
    GROUP BY t.typ
    


  • Herzlichen Dank für die rasche Hilfe !

    Auf Noodles ist immer Verlass 😃 😃



  • Wenn deine Tabelle aus diesen beiden Spalten besteht hast du sowieso ein Problem.
    In einem RDBMS muss en Datensatz immer eindeutig identifizierbar sein.

    RB 1 RBBB1
    RB 1 RBBB1

    ist es nicht.
    Hast du allerdings noch eine ID-Spalte

    1 RB 1 RBBB1
    2 RB 1 RBBB1

    dann passt es auch für die DB.



  • Sodala, Problem gelöst !

    Meine finale Lösung sieht jetzt so aus:

    SELECT
    Typ AS AA,
    COUNT(DISTINCT Untertyp1) AS BB,
    COUNT(DISTINCT Untertyp2) AS CC,
    COUNT(DISTINCT Untertyp3) AS DD
    FROM table_uno
    GROUP BY Typ;
    

Anmelden zum Antworten