|
Publicité ' | |||||||||||||||||||||||
|
|
#1 |
|
Membre actif
![]() |
Bonjour à tous,
je dois pour le boulot calculer la mediane en MySQL en fonction des valeurs d'une table. Je m'explique, j'ai une table Duree composé ainsi NClient (primaire) int Pays varchar Temps int Je voudrais pouvoir calculer la mediane (en fonction du champ Temps) pour chaque pays mais je ne sais pas comment faire. J'ai regardé sur le net mais je pige que dalle. Quelqu'un peut m'aider ? MERCI P.S : Pour calculer la mediane, on prend les valeurs que l'on tri par ordre croissant, on compte le nombre de valeur que l'on divise par 2 (x), puis on prend la x éme valeur... |
|
|
00
|
|
|
#2 | ||
![]() ![]() ![]() Antoine DinimantConsultant en Business Intelligence Inscription : octobre 2006 Messages : 5 854 ![]() |
l'idée de base va être de générer un n° d'ordre pour chaque client dans chaque pays :
Code :
EDIT : ajout de la clause GROUP BY |
||
|
|
00
|
|
|
#3 | ||||
|
Membre actif
![]() |
Salut et MERCI de ta réponse mais j'ai un petit soucis, j'ai remplacé les champ pour que ca marche bien et voila ce que ca donne avec ta requéte
Code :
Code :
Cette erreur disparait-elle si j'injecte cette sous requete dans une requete? Sinon comment résoudre ce probléme ? MERCI |
||||
|
|
00
|
|
|
#4 |
![]() ![]() ![]() Antoine DinimantConsultant en Business Intelligence Inscription : octobre 2006 Messages : 5 854 ![]() |
Désolé, j'ai une fâcheuse tendance à oublier les GROUP BY... J'ai corrigé ma réponse ci-dessus.
|
|
|
00
|
|
|
#5 |
|
Membre actif
![]() |
Par contre j'y pense, il n'y a pas besoin des clients, juste des pays et des durée vu qu'il me faut la mediane de chaque pays en fonction de leurs durée.
Par contre je galére j'ai essayer d'intégrer ta sous requéte dans une requéte mais (sois je suis mal réveillé sois je suis nul) je ne vois pas comment faire ![]() Vive le mal de tête... HELP |
|
|
00
|
|
|
#6 | ||||
|
Membre actif
![]() |
Re
J'ai testé ta requéte avec mes paramétres => Code :
Code :
En fait je ne sais pas vraiment ce que count(*) doit renvoyer en fait... |
||||
|
|
00
|
|
|
#7 |
![]() ![]() ![]() Antoine DinimantConsultant en Business Intelligence Inscription : octobre 2006 Messages : 5 854 ![]() |
le COUNT(*) te renvoie le nb de lignes précédentes, donc le rang de classement.
|
|
|
00
|
|
|
#8 |
|
Membre actif
![]() |
OK OK mais....
Comment cela se fait-il que les nombres augmentent puis diminue puis réaugmentent,.... C'est ca que je pige pas en fait ... |
|
|
00
|
|
|
#9 | ||
![]() ![]() ![]() Antoine DinimantConsultant en Business Intelligence Inscription : octobre 2006 Messages : 5 854 ![]() |
il faut que tu mettes les mêmes filtres sur d2, sinon ça fait plein de lignes en + qui sont COUNTées.
Code :
|
||
|
|
00
|
Copyright © 2000-2012 - www.developpez.com