Heim >Datenbank >MySQL-Tutorial >Wie kann ich den Median in MySQL effizient berechnen?

Wie kann ich den Median in MySQL effizient berechnen?

Susan Sarandon
Susan SarandonOriginal
2025-01-20 15:17:12363Durchsuche

How Can I Efficiently Calculate the Median in MySQL?

Vereinfachte Medianberechnung in MySQL

Die Berechnung des Medians (des Mittelwerts in einer Reihe numerischer Daten) kann in MySQL eine Herausforderung sein. Während die Berechnung des Mittelwerts mithilfe von AVG(x) einfach ist, erfordert die Ermittlung des Medians einen komplexeren Ansatz.

MySQL-Implementierung

Um die Medianberechnung zu vereinfachen, stellt MariaDB/MySQL die folgende Abfrage bereit:

<code class="language-sql">SELECT AVG(dd.val) as median_val
FROM (
  SELECT d.val, @rownum:=@rownum+1 as `row_number`, @total_rows:=@rownum
  FROM data d, (SELECT @rownum:=0) r
  WHERE d.val is NOT NULL
  -- 在此处添加任何必要的 WHERE 子句
  ORDER BY d.val
) as dd
WHERE dd.row_number IN ( FLOOR((@total_rows+1)/2), FLOOR((@total_rows+2)/2) );</code>

Erklärung

Diese Abfrage verwendet die folgenden Techniken:

  • Initialisieren Sie den Zeilenzähler @rownum und die Gesamtzeilenanzahl @total_rows, um die Position jeder Zeile in den sortierten Daten zu verfolgen.
  • Berechnet den Median (für gerade Datensätze) durch Mittelung der Werte, die FLOOR((@total_rows 1) / 2) und FLOOR((@total_rows 2) / 2) entsprechen.
  • In MariaDB 10.3.3 haben Sie die Möglichkeit, den Median direkt mit der MEDIAN-Funktion zu berechnen.

Das obige ist der detaillierte Inhalt vonWie kann ich den Median in MySQL effizient berechnen?. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!

Stellungnahme:
Der Inhalt dieses Artikels wird freiwillig von Internetnutzern beigesteuert und das Urheberrecht liegt beim ursprünglichen Autor. Diese Website übernimmt keine entsprechende rechtliche Verantwortung. Wenn Sie Inhalte finden, bei denen der Verdacht eines Plagiats oder einer Rechtsverletzung besteht, wenden Sie sich bitte an admin@php.cn