Autre formulation du calcul de la médiane

Dans cet article : http://sqlpro.developpez.com/optimisation/mediane/, je parle de différentes méthodes de calculs de la médiane. En voici une nouvelle que j’ai formulée…

Je n’ai pas encore testé la rapidité d’exécution de cette nouvelle formulation, mais je vous la livre directement :


SELECT SUM(VAL)
FROM   (SELECT AVG(STT_VALEUR) AS VAL
        FROM   (SELECT *
                FROM   T_STATISTIQUES_STT STT
                WHERE  ABS((SELECT COUNT(*)
                            FROM   T_STATISTIQUES_STT SOU
                            WHERE  SOU.STT_VALEUR < STT.STT_VALEUR) -
                           (SELECT COUNT(*)
                            FROM   T_STATISTIQUES_STT SUR
                            WHERE  SUR.STT_VALEUR > STT.STT_VALEUR)) <= 1) AS T
        UNION  ALL
        SELECT STT_VALEUR
        FROM   (SELECT STT_VALEUR, COUNT(*) NVALS,
                       (SELECT COUNT(*)
                        FROM   T_STATISTIQUES_STT) AS NOMBRE
                FROM   T_STATISTIQUES_STT AS STT
                       INNER JOIN (SELECT MAX(STT_VALEUR) AS VALS
                                   FROM   T_STATISTIQUES_STT
                                   UNION ALL
                                   SELECT MIN(STT_VALEUR) AS VALS
                                   FROM   T_STATISTIQUES_STT) AS T
                                  ON STT.STT_VALEUR = T.VALS
                       GROUP  BY STT_VALEUR) AS TT
        WHERE  NVALS >= NOMBRE / 2) AS TTT


Frédéric BROUARD, Spécialiste modélisation, bases de données, optimisation, langage SQL.
Le site sur le langage SQL et les S.G.B.D. relationnels : http://sqlpro.developpez.com/
Expert SQL Server http://www.sqlspot.com : audit, optimisation, tuning, formation
* * * * * Enseignant au CNAM PACA et à l’ISEN à Toulon * * * * *

Laisser un commentaire