Sobes.tech
Middle — Senior

Wie berechnet man den Median in SQL ohne eingebaute Funktion? Wie zählt man die Zeilen in einer Tabelle? Kennen Sie Fensterfunktionen?

sobes.tech KI

Antwort von AI

Median in SQL ohne eingebaute Funktion kann mit Fensterfunktionen oder Unterabfragen berechnet werden. Zum Beispiel, für eine Tabelle mit einer numerischen Spalte value:

SELECT AVG(value) AS median FROM (
  SELECT value, ROW_NUMBER() OVER (ORDER BY value) AS rn, COUNT(*) OVER () AS cnt
  FROM your_table
) sub
WHERE rn IN ((cnt + 1) / 2, (cnt + 2) / 2);

Hier:

  • ROW_NUMBER() nummeriert die Zeilen in aufsteigender Reihenfolge des Wertes.
  • COUNT(*) OVER () zählt die Gesamtzahl der Zeilen.
  • Es werden die Mittelwerte der beiden zentralen Elemente (bei gerader Anzahl) oder eines zentralen Elements (bei ungerader Anzahl) genommen.

Zählen der Zeilen in der Tabelle ist sehr einfach:

SELECT COUNT(*) FROM your_table;

Fensterfunktionen sind Funktionen, die Berechnungen über eine Menge von Zeilen durchführen, die mit der aktuellen Zeile verbunden sind, ohne das Ergebnis auf eine Zeile zu reduzieren (im Gegensatz zu Aggregatfunktionen). Sie sind nützlich für Ranglisten, gleitende Summen, Median usw.

Beispiel für eine Fensterfunktion:

SELECT value, ROW_NUMBER() OVER (ORDER BY value) AS rn FROM your_table;

Sie nummeriert die Zeilen in aufsteigender Reihenfolge des value-Werts.