MariaDB 10.5 Window Function Perzentile liefert "komische Resultate" nach OVER ()

Datenbankix

Neuer Benutzer
Beiträge
1
Hallo zusammen,

ich möchte bei einer MariaDB 10.5 Datenbank u.A. die 95er-Perzentile ausrechnen. Das funktioniert soweit richtig, solange ein PARTITION BY im OVER-Block steht. Sobald ich aber davor ein OVER() habe für alles, dann "verrechnet" sich die Funktion. Anbei bzw. hier ist ein Beispiel:
MariaDB 10.5 | db<>fiddle

Das komische ist: Die erste Perzentile ist noch korrekt, der zweite Aufruf nicht - es kommt dann jedes Mal etwas anderes heraus. Der Grund ist der vorherige Aufruf von einer Funktion mit "OVER ()", egal ob AVG, COUNT, ROW_NUMBER usw.. Klammere ich das aus, dann stimmt das Ergebnis, so als würde der Aufruf das Ergebnis "zerstören".
Was passiert da und wie sollte ich das richtig formulieren? Mein Ziel ist neben den Einzelgruppen (die korrekte Ergebnisse liefern) noch die Gesamtperzentile über alles auszurechnen und daneben noch andere Statistiken wie COUNT, AVG etc. auszugeben.

Eine Zusatzfrage: Wisst ihr ob bei diesen Funktionen auch etwas wie WITH ROLLUP möglich ist? Also eine automatische Gesamtsumme pro Gruppierung wie das bei "GROUP BY" möglich ist. Oder kann man das irgendwie kombinieren? Also quasi alles per GROUP BY klassisch gruppiert und dann dazwischen als Spalte die Perzentile.

Gruß,
Miriam
 

Anhänge

  • beispiel.sql.txt
    1,1 KB · Aufrufe: 3
Werbung:
Zurück
Oben