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

Comment calculer efficacement la médiane dans MySQL ?

Susan Sarandon
Libérer: 2025-01-20 15:13:09
original
206 Les gens l'ont consulté

How to Efficiently Calculate the Median in MySQL?

Calculez facilement la médiane MySQL

Dans l'analyse statistique et l'interprétation des données, la détermination de la médiane d'un ensemble de données est cruciale. Bien que MySQL fournisse la fonction pratique AVG() pour calculer la moyenne, trouver la médiane nécessite une approche différente. Cet article fournit une solution simplifiée pour calculer la médiane à l'aide d'une seule requête MySQL.

Calcul médian efficace

MySQL offre un moyen plus efficace que le tri et la sélection de lignes en PHP :

<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>
Copier après la connexion

Interprétation du code :

  • La sous-requête calcule le numéro de ligne et le nombre total de lignes pour chaque valeur.
  • La fonction AVG() calcule la moyenne de la médiane.
  • La clause IN filtre les résultats et inclut la ligne du milieu si le nombre de lignes est pair.

Amélioration des performances

Une version optimisée de cette requête utilise des opérations de comptage de lignes pour éviter une seconde passe ou une jointure :

<code class="language-sql">SELECT AVG(dd.val) as median_val
FROM (
  SELECT
    d.val,
    (@rownum:=@rownum+1) as `row_number`  -- 性能优化
  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((@rownum)/2), FLOOR((@rownum)/2)+1 )  -- 或 FLOOR((@rownum)/2), FLOOR((@rownum)/2)+1 )</code>
Copier après la connexion

Amélioration de MariaDB

MariaDB version 10.3.3 inclut la fonction MEDIAN intégrée :

<code class="language-sql">SELECT MEDIAN(val) AS median_val
FROM data</code>
Copier après la connexion

Ensemble, ces méthodes fournissent une solution simple et efficace pour calculer la médiane dans MySQL, permettant aux développeurs d'extraire facilement des informations significatives à partir des données.

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!

source:php.cn
Déclaration de ce site Web
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
Derniers articles par auteur
Tutoriels populaires
Plus>
Derniers téléchargements
Plus>
effets Web
Code source du site Web
Matériel du site Web
Modèle frontal