Les Quartiles de requête SQL

J'ai une table très très simple comme ça:

CREATE TABLE IF NOT EXISTS LuxLog (
  Sensor TINYINT,
  Lux INT,
  PRIMARY KEY(Sensor)
)

Il contient des milliers de journaux à partir de différents capteurs.

Je voudrais avoir Q1 et Q3 pour tous les capteurs.

Je peux faire une requête pour chaque donnée, mais il serait mieux pour moi d'avoir une requête pour tous les capteurs (T1 et T3 arrière à partir d'une requête)

J'ai pensé que ce serait une opération assez simple, comme les quartiles sont largement utilisés et l'une des principales variables statistiques dans le calcul de fréquence. La vérité est que j'ai trouvé des charges de trop compliqué de solutions, alors que j'espérais trouver quelque chose de propre et simple.

Quelqu'un peut me donner un indice?

Edit: C'est un morceau de code que j'ai trouvé en ligne, mais il ne fonctionne pas pour moi:

SELECT  SUBSTRING_INDEX(
        SUBSTRING_INDEX(
            GROUP_CONCAT(                 -- 1) make a sorted list of values
                Lux
                ORDER BY Lux
                SEPARATOR ','
            )
        ,   ','                           -- 2) cut at the comma
        ,   75/100 * COUNT(*)        --    at the position beyond the 90% portion
        )
    ,   ','                               -- 3) cut at the comma
    ,   -1                                --    right after the desired list entry
    )                 AS `75th Percentile`
    FROM    LuxLog
    WHERE   Sensor=12
    AND     Lux<>0

Je suis 1 comme valeur de retour, alors que ce devrait être un nombre qui peut être divisé par 10 (10,20,30.....1000)

N'avez-vous pas poser cette question il y a quelques heures? Pas de bonnes réponses?
"J'ai pensé que ce serait une opération assez simple, comme les quartiles sont largement utilisés et l'une des principales variables statistiques relatives à la fréquence de calcul." Ce n'est pas une très bonne base pour la prévision de la facilité de la tâche. Le calcul des quartiles (et même juste médianes) est opérationnel compliqué par rapport à, disons, le calcul de moyens.
Vous avez raison, mais je me rapproche de SQL maintenant et depuis que je suis habitué à d'autres de haut niveau des langages de programmation l'absence d'un logiciel de statistiques est de me faire souffrir.
SQL n'est pas bien caractérisé comme un programmation langue. C'est une définition de données et langage de manipulation de données, basé sur un modèle de données relationnel. Bien que SQL en général et plus certaines implémentations ne présente certaines caractéristiques réalisé à la commande, le modèle sous-jacent est basé sur la (non ordonnée). Cela ne correspond pas bien avec certains types de tâches, telles que l'informatique quartiles. Cela ne signifie pas que vous pas effectuer de tels calculs en SQL, mais pour certaines tâches, vous êtes mieux de couplage SQL avec une autre langue.
MySQL en particulier se trouve être particulièrement limitée pour de telles tâches, comme il lui manque plusieurs caractéristiques communes qui rendra la tâche plus facile (les fonctions de la fenêtre, les expressions de table communes, diverses autres fonctions: même en faisant abstraction de NTILE()).

OriginalL'auteur Hamma | 2015-07-03