IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)
Navigation

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les réponses en temps réel, voter pour les messages, poser vos propres questions et recevoir la newsletter

Requêtes MySQL Discussion :

Calculer moyenne sur une période


Sujet :

Requêtes MySQL

  1. #1
    Invité
    Invité(e)
    Par défaut Calculer moyenne sur une période
    Bonjour,
    Voila je dois calculer la moyenne d'offre publier sur une période. Mais j'ai aucune idée de comment réaliser se calcul avec MySql.

    Par exemple sur la période du 1 au 6 Octobre j'ai :
    Date de début / id_offre
    2011-10-01 / 1
    2011-10-01 / 2
    2011-10-01 / 3
    2011-10-03 / 4

    se qui avec un papier et un crayon me donnerait.
    Au 2011-10-01 j'ai 3 offres
    Au 2011-10-02 j'ai 3 offres
    Au 2011-10-03 j'ai 4 offres
    Au 2011-10-04 j'ai 4 offres
    Au 2011-10-05 j'ai 4 offres
    Au 2011-10-06 j'ai 4 offres
    Donc 3+3+4+4+4+4 = 22/6 jours = 3.66 Offres

    La question est : Comment obtenir se résultat avec une requête Mysql.

    D'avance merci pour votre aide.

  2. #2
    Modérateur

    Avatar de CinePhil
    Homme Profil pro
    Ingénieur d'études en informatique
    Inscrit en
    Août 2006
    Messages
    16 801
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 61
    Localisation : France, Haute Garonne (Midi Pyrénées)

    Informations professionnelles :
    Activité : Ingénieur d'études en informatique
    Secteur : Enseignement

    Informations forums :
    Inscription : Août 2006
    Messages : 16 801
    Points : 34 063
    Points
    34 063
    Billets dans le blog
    14
    Par défaut
    Un petit cours de SQL sur les fonctions de calcul et de groupement me semble indispensable.

  3. #3
    Membre expert
    Avatar de Maljuna Kris
    Homme Profil pro
    Retraité
    Inscrit en
    Novembre 2005
    Messages
    2 613
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 72
    Localisation : France, Finistère (Bretagne)

    Informations professionnelles :
    Activité : Retraité
    Secteur : Administration - Collectivité locale

    Informations forums :
    Inscription : Novembre 2005
    Messages : 2 613
    Points : 3 950
    Points
    3 950
    Par défaut
    Saluton,
    Essayes un truc dans ce genre
    Code mysql : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    SELECT AVG(SELECT COUNT(*) 
              FROM latable
              WHERE debut BETWEEN "2011-10-01" AND lt.debut)
              AS moyenne
    FROM latable lt
    WHERE lt.debut BETWEEN "2011-10-01" AND "2011-10-06"

  4. #4
    Invité
    Invité(e)
    Par défaut
    Maljuna Kris,
    J'ai une erreur de syntax après offre.date_debut dans le AVG.
    Pourtant quand je les exécutes indépendamment elles fonctionnes.

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    SELECT AVG(SELECT COUNT(id_offre) 
               FROM offre 
               WHERE offre.date_debut 
               BETWEEN '2011-10-01' AND offre.date_debut AND offre.id_client = 4804) AS moyenne
    FROM offre
    WHERE offre.date_debut 
    BETWEEN '2011-10-01' AND '2011-10-06' 
    AND offre.id_client = 4804

  5. #5
    Membre expert
    Avatar de Maljuna Kris
    Homme Profil pro
    Retraité
    Inscrit en
    Novembre 2005
    Messages
    2 613
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 72
    Localisation : France, Finistère (Bretagne)

    Informations professionnelles :
    Activité : Retraité
    Secteur : Administration - Collectivité locale

    Informations forums :
    Inscription : Novembre 2005
    Messages : 2 613
    Points : 3 950
    Points
    3 950
    Par défaut
    Comme on utilise la même table dans la requête et la sous-requête, notamment pour corréler la sous-requête, il faut aliasser les noms de tables pour que MySQL s'y retrouve.

  6. #6
    SLE
    SLE est déconnecté
    Membre éclairé Avatar de SLE
    Homme Profil pro
    Consultant informatique
    Inscrit en
    Janvier 2004
    Messages
    604
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 51
    Localisation : Belgique

    Informations professionnelles :
    Activité : Consultant informatique

    Informations forums :
    Inscription : Janvier 2004
    Messages : 604
    Points : 799
    Points
    799
    Par défaut
    Je ne suis pas sûr de comprendre...
    D'après votre exemple "crayon", vous voulez générer une moyenne pour CHAQUE jour de la période que vous définissez ? Même si les offres ont déjà été comptabilisées la veille ?
    Dans ce cas, il va falloir passer par une table "calendrier" pour générer les résultats.

Discussions similaires

  1. [WebI Xi3] Comment calculer une variation sur une période glissante ?
    Par Sites dans le forum Débuter
    Réponses: 3
    Dernier message: 05/07/2011, 15h34
  2. [VxiR2] Calcul d'age sur une période glissante
    Par BEGU95 dans le forum Deski
    Réponses: 6
    Dernier message: 21/01/2011, 16h53
  3. Comment calculer la moyenne sur une colonne selon un critère
    Par Contact2012 dans le forum Requêtes
    Réponses: 3
    Dernier message: 18/06/2010, 16h07
  4. Calcul d'une moyenne sur une feuille differente
    Par Sliver dans le forum Excel
    Réponses: 6
    Dernier message: 02/02/2010, 16h56
  5. [8.5] calcul de moyenne sur une durée
    Par rihiveli dans le forum SAP Crystal Reports
    Réponses: 5
    Dernier message: 27/04/2007, 11h06

Partager

Partager
  • Envoyer la discussion sur Viadeo
  • Envoyer la discussion sur Twitter
  • Envoyer la discussion sur Google
  • Envoyer la discussion sur Facebook
  • Envoyer la discussion sur Digg
  • Envoyer la discussion sur Delicious
  • Envoyer la discussion sur MySpace
  • Envoyer la discussion sur Yahoo