Announcement

Collapse
No announcement yet.

Modalwert bilden

Collapse
X
  • Filter
  • Time
  • Show
Clear All
new posts

  • Modalwert bilden

    Hallo,


    Wie kann ich in Oracle einen Modalwert bei einer Gruppierung bilden?

    Der Modalwert ist die häufigste Ausprägung eines Attributes.


    Hier ein kleines Beispiel:


    Kundennummer Filiale Bewertung
    1 1 gut
    1 2 gut
    1 3 gut
    1 4 schlecht
    2 1 schlecht
    2 2 schlecht
    2 3 gut
    2 4 gut
    2 5 schlecht


    Herausbekommen möchte ich folgendes Ergebnis:

    Kundennummer Bewertung
    1 gut
    2 schlecht

    Kommen mehrere Ausprägungen in gleicher Häufigkeit vor, darf irgendeine oder aber gar keine gewählt werden.


    Bei der Erstellung eines entsprechenden Statements bin ich wirklich verzweifelt. Dabei klingt es auf den ersten Blick so trivial.


    Vielen Dank für eure Hilfe
    Philipp

  • #2
    Mal ganz abgesehn davon dass man so etwas nicht so abspeichern sollte dafür nimmt man einen numerischen Wert mit dems garantiert leichter auszuwerten wäre

    [highlight=sql]
    with countTable as
    (
    SELECT t1.Kundennummer, COUNT(t1.Bewertung) anzahl, t1.Bewertung
    FROM Tabelle t1
    GROUP BY t1.Kundennummer, t1.Bewertung
    )
    SELECT ct.Kundennummer, ct.Bewertung
    FROM countTable ct
    WHERE ct.anzahl =
    (
    SELECT MAX(ct2.anzahl)
    FROM countTable ct2
    WHERE ct2.Kundennummer = ct.Kundennummer
    )
    [/highlight]

    Comment

    Working...
    X