Comment calculer la médiane en sql

<

Contenu

  • Trouver le médian
  • Conseils & avertissements
  • article data-type="article">
    Calculer la médiane dans SQL

    Le calcul de la médiane d`un ensemble est plus difficile que le simple calcul de la moyenne ou moyenne d`un ensemble. Ajouter dans la syntaxe et de la complexité de SQL et la tâche peut sembler insurmontable au premier abord. Mais avec quelques concepts simples et quelques exemples, le calcul de la valeur médiane est pas de sueur. Ce how-to utilisera Transact-SQL pour ses exemples.

    Choses que vous devez

    • Une base de données capable d`exécuter Transact-SQL (Microsoft SQL Server, Sybase SQL Anywhere, etc.)

    Trouver le médian

    • Comprendre la différence entre la médiane et la moyenne d`un ensemble. La médiane est le "valeur moyenne" d`un ensemble, alors que la moyenne est la moyenne de tous les éléments d`un ensemble. Par exemple, étant donné un ensemble ordonné de nombres {1, 2, 6, 9, 10, 11}, la médiane sera 7.5 ([6 + 9] / 2), mais la moyenne est de 6,5 ([1 + 2 + 6 + 9 + 10 + 11] / 6).

      Pour calculer la médiane, compter le nombre d`éléments dans l`ensemble. Si le compteur est pair, prendre la moyenne de l`élément à la position se trouve en comptant le nombre total des éléments et en divisant par deux et la position trouvée en divisant le nombre total d`éléments par 2 et en ajoutant une. Si le nombre est impair, prendre l`élément à la position marquée par le nombre total divisé par deux et arrondi à l`entier le plus proche.

    • Créer un ensemble ordonné de nombres avec un nouvel indice intégral. Par exemple, si les données numériques sont stockées dans la "num" colonne du "données" table, créer une nouvelle table temporaire contenant le "num" valeur avec un nouvel indice:




      CREATE #values ​​TABLE (
      ID int NON IDENTITÉ NULL (1,1),
      num numérique (9,4)
      )

      INSERT INTO #values ​​(num)
      num SELECT
      à partir de données
      ORDER BY num

      L`instruction ORDER BY est très important pour le calcul de la médiane.

    • Sélectionnez les données de la table temporaire où l`ID est égal à la moitié du nombre d`enregistrements dans la table. S`il y a un nombre impair de disques, prendre la moyenne des deux valeurs que la médiane finale. Ceci peut être accompli dans la requête unique ci-dessous:

      SELECT MOYENNE (num)
      DE #values ​​v
      JOINDRE (
      SELECT COUNT (*) AS cnt
      DE #values ​​_v
      ) C ON (
      c.ID = PLAFOND (_v.cnt / 2.0)
      ET (

      _v.cnt% 2 = 1 - cnt est impair
      OU (
      _v.cnt% 2 = 0 - cnt est encore
      ET c.ID = (_v.cnt / 2.0) + 1
      )

      )
      )

      Cette requête utilise une sous-requête pour trouver le nombre d`enregistrements de sorte que la valeur moyenne peut être déterminée. Dans les deux cas d`un même compte et un nombre impair, l`utilisation de PLAFOND à arrondir (_v.cnt / 2.0) est exacte. (Par exemple, même: 02/06 = 3- Odd: 02/07 = 3,5, qui est arrondi à 4) En outre, lorsque le compte est encore, ajouter 1 à (_v.cnt / 2.0) pour obtenir le deuxième élément à inclure dans la valeur médiane finale.

    Conseils & Avertissements

    • Si vous utilisez une version récente de Microsoft SQL Server, tels que 2005 ou 2008, vous pouvez utiliser "Expressions de table commune" au lieu de créer une table temporaire. Selon la configuration de votre schéma et le serveur, ce qui peut fournir une augmentation de la performance.

    AUTRES