Maison >base de données >tutoriel mysql >Comment puis-je calculer efficacement la médiane dans MySQL ?

Comment puis-je calculer efficacement la médiane dans MySQL ?

Susan Sarandon
Susan Sarandonoriginal
2025-01-20 15:17:12434parcourir

How Can I Efficiently Calculate the Median in MySQL?

Calcul médian simplifié dans MySQL

Le calcul de la médiane (la valeur médiane dans un ensemble de données numériques) peut être difficile dans MySQL. Bien que le calcul de la moyenne à l’aide de AVG(x) soit simple, trouver la médiane nécessite une approche plus complexe.

Implémentation MySQL

Pour simplifier le calcul de la médiane, MariaDB/MySQL fournit la requête suivante :

<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>

Explication

Cette requête utilise les techniques suivantes :

  • Initialisez le compteur de lignes @rownum et le nombre total de lignes @total_rows pour suivre la position de chaque ligne dans les données triées.
  • Calcule la médiane (pour les ensembles de données pairs) en faisant la moyenne des valeurs correspondant à FLOOR((@total_rows 1) / 2) et FLOOR((@total_rows 2) / 2).
  • Dans MariaDB 10.3.3, vous avez la possibilité de calculer la médiane directement à l'aide de la fonction MEDIAN.

Ce qui précède est le contenu détaillé de. pour plus d'informations, suivez d'autres articles connexes sur le site Web de PHP en chinois!

Déclaration:
Le contenu de cet article est volontairement contribué par les internautes et les droits d'auteur appartiennent à l'auteur original. Ce site n'assume aucune responsabilité légale correspondante. Si vous trouvez un contenu suspecté de plagiat ou de contrefaçon, veuillez contacter admin@php.cn