Précédent   Forum des professionnels en informatique > Bases de données > MS SQL-Server > Développement
Développement Forum d'entraide sur le Transact-SQL, le CLR, les procédures stockées, les triggers, les requêtes SQL
Partagez cette discussion sur d'autres réseaux sociaux : Viadeo Twitter Google Facebook Digg Delicious MySpace Yahoo
Réponse Proposer ce sujet en actualité
 
Outils de la discussion
Publicité
'
Vieux 05/01/2012, 10h29   #1
Invité régulier
 
Inscription : septembre 2009
Messages : 14
Détails du profil
Informations personnelles :
Âge : 32

Informations forums :
Inscription : septembre 2009
Messages : 14
Points : 6
Points : 6
Par défaut Faire une moyenne en excluant des valeurs

Bonjour à tous.

J'ai une base de donnée SQL Server 2008 R2. Dans une de mes tables, j'ai des montants (décimal), quantité,... Je voudrais faire une moyenne de prix par jour. J'ai bien sûr fait la commande :

Code :
1
2
SELECT AVG(price)
FROM Markets;
Le soucis vient du fait, que certains montant ne rien à faire dans ma moyenne.
Exemple :
Prix :
122 000 $
122 640 $
123 000 $
125 652 $
127 000 $
122 000 000 $

Le 122M $ vient soit d'une erreur de saisie, soit "je tente ma chance" avec un gros montant. Dans tout les cas, ce genre de montant fait basculer la moyenne.

Ma question : Comment faire une moyenne en excluant des montants qui n'ont rien à voir avec la moyenne réelle (montant max, ou des min) ?
J'ai vu qu'il y a des commandes du genre : STDEV() ou VAR(). Cela me sort un chiffre... mais j'en fais quoi
slydefr007 est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 05/01/2012, 11h59   #2
Rédacteur/Modérateur

 
Avatar de WOLO Laurent
 
Homme Laurent WOLO
Architecte de base de données
Inscription : mars 2003
Messages : 2 696
Détails du profil
Informations personnelles :
Nom : Homme Laurent WOLO
Âge : 35
Localisation : Congo-Brazzaville

Informations professionnelles :
Activité : Architecte de base de données
Secteur : Finance

Informations forums :
Inscription : mars 2003
Messages : 2 696
Points : 3 917
Points : 3 917
Envoyer un message via Yahoo à WOLO Laurent
Alors commence par corriger tes donnees avant d'appliquer la moyenne.
C'est aussi simple que cela n'est ce pas ?
__________________

Découvrez la FAQ de MS SQL Server.
La chance accorde ses faveurs aux esprits avertis !
WOLO Laurent est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 05/01/2012, 13h42   #3
Modérateur
 
Homme
Administrateur de base de données
Inscription : août 2007
Messages : 1 159
Détails du profil
Informations personnelles :
Sexe : Homme
Âge : 28
Localisation : Belgique

Informations professionnelles :
Activité : Administrateur de base de données
Secteur : Industrie Pharmaceutique

Informations forums :
Inscription : août 2007
Messages : 1 159
Points : 1 608
Points : 1 608
D'apres ce que je peux voir c'est une moyenne reduite que tu cherches (sont loin les cours de stats...).

J'ai trouve cet article qui donne des pistes:
http://www.sqlteam.com/article/compu...ed-mean-in-sql

Il doit etre possible de jouer avec le row_number() pour reecrire les queries.
Ptit_Dje est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 05/01/2012, 17h58   #4
Invité régulier
 
Inscription : septembre 2009
Messages : 14
Détails du profil
Informations personnelles :
Âge : 32

Informations forums :
Inscription : septembre 2009
Messages : 14
Points : 6
Points : 6
Citation:
Envoyé par WOLO Laurent Voir le message
Alors commence par corriger tes donnees avant d'appliquer la moyenne.
C'est aussi simple que cela n'est ce pas ?
Comme toujours... non. J'ai plusieurs millions d'enregistrements dans cette table. Il y a plusieurs milliers d'objet différent, dans plusieurs endroit différent. Chaque région à son propre prix moyen.

Citation:
Envoyé par Ptit_Dje Voir le message
D'apres ce que je peux voir c'est une moyenne reduite que tu cherches (sont loin les cours de stats...).

J'ai trouve cet article qui donne des pistes:
http://www.sqlteam.com/article/compu...ed-mean-in-sql

Il doit etre possible de jouer avec le row_number() pour reecrire les queries.
Je vais regarder cet article, et je ferais un reply pour dire ce que ça donne. Merci.
slydefr007 est déconnecté   Envoyer un message privé Réponse avec citation 00
Réponse Proposer ce sujet en actualité
Outils de la discussion



Fuseau horaire GMT +2. Il est actuellement 04h12.


 
 
 
 
Partenaires

Hébergement Web