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 :

Agréger des données en une seule et unique requête


Sujet :

Requêtes MySQL

  1. #1
    Membre du Club
    Inscrit en
    Février 2010
    Messages
    277
    Détails du profil
    Informations forums :
    Inscription : Février 2010
    Messages : 277
    Points : 64
    Points
    64
    Par défaut Agréger des données en une seule et unique requête
    Bonjour,

    Je cherche à agréger des données en une seule et unique requête SQL (je suis sous MySQL).

    Je stocke log/visite de pages web avec notamment la date, à des fins de statistiques. Par exemple, si je veux faire un tableau ou un graphique de statistiques du nombre de visites par jour, il faut que je compte le nombre de ligne (count(*) par exemple) pour les dates agrégées par jour. Si je fait des stats sur une période données (toutes les semaines sur 6 mois par exemple) par semaine, il faut que je compte le nombre de lignes par semaine. Je ne sais pas si je suis clair.

    Je peux probablement le faire mais en plusieurs requêtes SQL. Par exemple 6x4 = 24 requêtes SQL pour des stats de cumul/visite toutes les semaines sur 6 mois (4 semaines sur 6 mois). Je ne sais pas si je peux agréger les données en une seule requête SQL. J'en doute, mais je pose juste la question.

  2. #2
    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 016
    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 016
    Points : 23 705
    Points
    23 705
    Par défaut
    Bonjour,

    Bien sûr que c'est faisable.
    À partir de la date, vous pouvez récupérer le numéro de la semaine.
    En mettant ce numéro dans le SELECT et dans le GROUP BY, vous obtiendrez une ligne par semaine.

    Et pour limiter sur les 6 dernières mois, c'est dans la clause WHERE que vous mettez cette condition.
    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

  3. #3
    Membre du Club
    Inscrit en
    Février 2010
    Messages
    277
    Détails du profil
    Informations forums :
    Inscription : Février 2010
    Messages : 277
    Points : 64
    Points
    64
    Par défaut
    merci

    OK pour le GROUP BY et la clause WHERE, mais pour le numéros de semaine, comment faire ? C'est DATE_FORMAT(NOW(),"%U") ? weekofyear ?

  4. #4
    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 016
    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 016
    Points : 23 705
    Points
    23 705
    Par défaut
    Pour la fonction, si la période de 6 mois est à cheval sur 2 années, une solution consisterait à utiliser DATE_FORMAT(colonne_date, '%Y-%V').
    Attention, c'est bien votre colonne qui contient la date qu'il faut mettre dans la fonction, et pas NOW().
    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

Discussions similaires

  1. affichage des données sur une seule page
    Par webdesign77 dans le forum ASP.NET
    Réponses: 2
    Dernier message: 12/03/2009, 23h23
  2. SQL - Traiter des données d'une table
    Par david71 dans le forum MS SQL Server
    Réponses: 2
    Dernier message: 22/02/2005, 16h47
  3. [CR]Importer des données d'une feuille excel
    Par rolan dans le forum SAP Crystal Reports
    Réponses: 3
    Dernier message: 17/12/2004, 22h32
  4. concatenation des données d'une table dans une autre
    Par Fabby69 dans le forum MS SQL Server
    Réponses: 6
    Dernier message: 04/10/2004, 11h38
  5. Copie des données d'une table d'une base Interbase 6
    Par Djedjeridoo dans le forum InterBase
    Réponses: 6
    Dernier message: 02/02/2004, 09h39

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