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

Langage SQL Discussion :

[MySQL 4.0] Calcul de la moyenne d'une somme


Sujet :

Langage SQL

  1. #1
    Membre à l'essai
    Profil pro
    Inscrit en
    Avril 2006
    Messages
    25
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Avril 2006
    Messages : 25
    Points : 12
    Points
    12
    Par défaut [MySQL 4.0] Calcul de la moyenne d'une somme
    Bonsoir,

    Je dispose d'une table avec 3 champs, date_pub et id_pub constitue la clé primaire et un champ nommé click.

    Voici un exemple d'occurrence :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
     date_pub | id_pub | click
    2007-05-30 | 0 | 227
    2007-05-30 | 1 | 40
    2007-06-30 | 0 | 10
    Je voudrai connaître la moyenne du nombre de click par jour.
    J'ai essayé plusieurs requête dont celle-ci mais ca ne fonctionne pas

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
     SELECT AVG(SUM(click)) FROM pub GROUP BY date_pub
    Comment résoudre ce problème ?

  2. #2
    Modérateur
    Avatar de al1_24
    Homme Profil pro
    Retraité
    Inscrit en
    Mai 2002
    Messages
    9 080
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 63
    Localisation : France, Val de Marne (Île de France)

    Informations professionnelles :
    Activité : Retraité
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Mai 2002
    Messages : 9 080
    Points : 30 821
    Points
    30 821
    Par défaut
    Il faut le faire en deux étapes, en passant par une table dérivée :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    SELECT AVG(somme)
    FROM ( SELECT SUM(click) AS somme
           FROM pub 
           GROUP BY date_pub ) AS grp
    Modérateur Langage SQL
    Règles du forum Langage SQL à lire par tous, N'hésitez pas à consulter les cours SQL
    N'oubliez pas le bouton et pensez aux balises
    [code]
    Si une réponse vous a aidé à résoudre votre problème, n'oubliez pas de voter pour elle en cliquant sur
    Aide-toi et le forum t'aidera : Un problème exposé sans mentionner les tentatives de résolution infructueuses peut laisser supposer que le posteur attend qu'on fasse son travail à sa place... et ne donne pas envie d'y répondre.

  3. #3
    Membre à l'essai
    Profil pro
    Inscrit en
    Avril 2006
    Messages
    25
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Avril 2006
    Messages : 25
    Points : 12
    Points
    12
    Par défaut
    Sans sous-requête est -ce possible ?

    Car je dispose de la version 4.0 de MySQL sur mon serveur...

  4. #4
    Membre du Club
    Profil pro
    Inscrit en
    Mai 2007
    Messages
    46
    Détails du profil
    Informations personnelles :
    Localisation : France, Rhône (Rhône Alpes)

    Informations forums :
    Inscription : Mai 2007
    Messages : 46
    Points : 58
    Points
    58
    Par défaut Re
    Bonjour,
    Je n'ai pas mySQL, mais peut-être que cette requête fonctionnera quand même
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    select SUM(id_pub))/COUNT(id_pub) FROM pub

  5. #5
    ced
    ced est déconnecté
    Rédacteur/Modérateur

    Avatar de ced
    Homme Profil pro
    Gestion de bases de données techniques
    Inscrit en
    Avril 2002
    Messages
    6 018
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 48
    Localisation : France, Loiret (Centre)

    Informations professionnelles :
    Activité : Gestion de bases de données techniques
    Secteur : Agroalimentaire - Agriculture

    Informations forums :
    Inscription : Avril 2002
    Messages : 6 018
    Points : 23 710
    Points
    23 710
    Par défaut
    La moyenne d'une somme ?
    Pour faire une moyenne, il faut plusieurs éléments, or la fonction somme ne renvoit qu'un seul élément... Ca n'a pas de sens et du coup, ça ne rique effectivement pas de marcher.
    Ce que tu cherches à faire, c'est une moyenne, tout simplement :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    SELECT AVG(click) FROM pub GROUP BY date_pub
    Et comme la moyenne, c'est la somme des éléments divisée par le nombre d'éléments, la requête donnée par phoenix38 donne le même résultat.

    ced
    Rédacteur / Modérateur SGBD et R
    Mes tutoriels et la FAQ MySQL

    ----------------------------------------------------
    Pensez aux balises code et au tag
    Une réponse vous a plu ? N'hésitez pas à y mettre un
    Je ne réponds pas aux questions techniques par message privé, les forums sont là pour ça

  6. #6
    Membre du Club
    Profil pro
    Inscrit en
    Mai 2007
    Messages
    46
    Détails du profil
    Informations personnelles :
    Localisation : France, Rhône (Rhône Alpes)

    Informations forums :
    Inscription : Mai 2007
    Messages : 46
    Points : 58
    Points
    58
    Par défaut Re
    C'est tout à fait vrai et je n'y avait même pas fait attention !

  7. #7
    Membre chevronné

    Profil pro
    Inscrit en
    Avril 2005
    Messages
    1 673
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Avril 2005
    Messages : 1 673
    Points : 1 775
    Points
    1 775
    Par défaut
    Citation Envoyé par ced
    La moyenne d'une somme ?
    Pour faire une moyenne, il faut plusieurs éléments, or la fonction somme ne renvoit qu'un seul élément... Ca n'a pas de sens et du coup, ça ne rique effectivement pas de marcher.
    Ce que tu cherches à faire, c'est une moyenne, tout simplement :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    SELECT AVG(click) FROM pub GROUP BY date_pub
    +1
    J'ai testé sous Oracle ça fonctionne mais attention aux types DATE et à la gestion des heures, minutes et secondes :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    10g SOC5> select *
      2  from dvp;
     
    DP                          IP          C
    ------------------- ---------- ----------
    30/05/2007 00:00:00          0        227
    30/05/2007 00:00:00          1         40
    30/06/2007 00:00:00          0         10
     
    3 ligne(s) sélectionnée(s).
     
    10g SOC5> select avg(c)
      2  from dvp
      3  group by dp;
     
        AVG(C)
    ----------
         133,5
            10
     
    2 ligne(s) sélectionnée(s).
    Modérateur des forums Oracle et Langage SQL
    Forum SQL : je n'interviens PAS plus de 4 fois dans une discussion car si c'est nécessaire cela prouve généralement que vous n'avez pas respecté : les règles du forum

  8. #8
    Modérateur
    Avatar de al1_24
    Homme Profil pro
    Retraité
    Inscrit en
    Mai 2002
    Messages
    9 080
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 63
    Localisation : France, Val de Marne (Île de France)

    Informations professionnelles :
    Activité : Retraité
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Mai 2002
    Messages : 9 080
    Points : 30 821
    Points
    30 821
    Par défaut
    Citation Envoyé par Silver76
    Sans sous-requête est -ce possible ?
    Comme ça :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    SELECT SUM(click) / COUNT(DISTINCT date_pub)
    FROM pub
    Modérateur Langage SQL
    Règles du forum Langage SQL à lire par tous, N'hésitez pas à consulter les cours SQL
    N'oubliez pas le bouton et pensez aux balises
    [code]
    Si une réponse vous a aidé à résoudre votre problème, n'oubliez pas de voter pour elle en cliquant sur
    Aide-toi et le forum t'aidera : Un problème exposé sans mentionner les tentatives de résolution infructueuses peut laisser supposer que le posteur attend qu'on fasse son travail à sa place... et ne donne pas envie d'y répondre.

Discussions similaires

  1. Réponses: 4
    Dernier message: 13/12/2014, 00h54
  2. [Débutant] calcul de la moyenne d'une région
    Par blackmisery dans le forum Images
    Réponses: 22
    Dernier message: 26/08/2013, 10h03
  3. Calcul de la moyenne d'une activite + insertion des lignes
    Par Chikatilo dans le forum Macros et VBA Excel
    Réponses: 23
    Dernier message: 03/09/2008, 19h19
  4. Calcul de la moyenne d'une activite
    Par Chikatilo dans le forum Requêtes et SQL.
    Réponses: 8
    Dernier message: 02/09/2008, 15h01
  5. calcule de la moyenne d'une région
    Par jameshamm dans le forum Images
    Réponses: 1
    Dernier message: 02/03/2008, 15h47

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