|
Publicité ' | |||||||||||||||||||||||
|
|
#1 |
|
Invité régulier
![]() Inscription : janvier 2011 Messages : 54 ![]() |
Bonjour,
J'aurais besoin de votre aide pour la création d'une requête spécifique, j'aimerais que celle-ci me renvoie la moyenne de visiteurs inscrits par jour (en sélectionnant une période déterminée (ex: décembre) Ma table 'visitors' contient entre autre les champs: id, date_in. Mon idée est de ne choisir que les jours où il y a eu au moins une visite (pour éviter les we et jours fériés). Merci pour votre aide. |
|
|
00
|
|
|
#2 |
|
Expert Confirmé
![]() Inscription : mai 2002 Messages : 1 655 ![]() |
bonjour,
toutes les réponses sont ici : http://sqlpro.developpez.com/cours/sqlaz/ensembles/ Revenez avec votre requête + le problème rencontré, s'il y a Par contre j'ai un doute sur la demande : "une moyenne par jour de visiteur", ne serai-ce pas plutôt le nombre de visiteurs par jour ? |
|
|
00
|
|
|
#3 |
|
Invité régulier
![]() Inscription : janvier 2011 Messages : 54 ![]() |
Merci mais on ne parle pas de moyenne dans le sujet posté.
Mon idée est d'utiliser la fonction AVG qui me permettrait de faire une moyenne de visiteurs/jour "ouvrable" sur une période déterminée. Ex: Décembre 2011: 01/12: 6 visites, 02/12: 13 visites, 05/12: 9 visites, etc. J'aimerais qu'il me renvoie dans ce cas: 9,33 A ne pas perdre de vue qu'il ne faut pas prendre en compte le 3 et 4 décembre (je me baserais sur les jours où il y a eu au moins une visite). Merci pour votre aide |
|
|
00
|
|
|
#4 |
|
Expert Confirmé
![]() Inscription : mai 2002 Messages : 1 655 ![]() |
bonjour,
oui l'idée est là. Donc où bloquez vous avec votre requête ? |
|
|
00
|
|
|
#5 | ||
|
Invité régulier
![]() Inscription : janvier 2011 Messages : 54 ![]() |
Là, je suis toujours à un total de visites sur une période donnée:
Code :
1° Calculer le nombre de jours 'ouvrables' sur le mois (au moins une visite/jour) 2° Compter le nombre de visites total pour ma période (ok, voir ci-dessus) 3° Diviser le nombre de visites par le nombre de jours 'ouvrables' Merci |
||
|
|
00
|
|
|
#6 |
![]() ![]() |
Dans le lien qui vous a été donné, il y a aussi GROUP BY qui vous permettra d'avoir le nombre par jour où il y a eu des connexions.
Si vous ne souhaitez que les jours ouvrés, vous pouvez faire une restriction en extrayant de la date le jour de la semaine et en ne demandant que ce jour soit différent du samedi et du dimanche. Voir la doc pour plus d'explication.
__________________
Philippe Leménager. Ingénieur d'étude à l'École Nationale de Formation Agronomique. Mon blog sur la conception des BDD, le langage SQL, le PHP avec Zend Framework... « Ce que l'on conçoit bien s'énonce clairement, et les mots pour le dire arrivent aisément ». (Nicolas Boileau) À la maison comme au bureau, j'utilise Mandriva Linux ou Mageïa ! Soutenons l'industrie logicielle française ! Linuxiens, comptez-vous ! |
|
00
|
|
|
#7 | ||||
|
Expert Confirmé
![]() Inscription : mai 2002 Messages : 1 655 ![]() |
et bien, suivant le lien que je vous avais donné :
Le nombre de personne par jours qui visite : Code :
Et pour la moyenne du mois qui en découle : Code :
|
||||
|
|
00
|
|
|
#8 |
|
Invité régulier
![]() Inscription : janvier 2011 Messages : 54 ![]() |
La 1e requête me donne un tableau de 2 colonnes (la date en format long et une colonne où je n'ai que la valeur 1)
Et la 2e requête me donne la moyenne de la conne cnt, autrement dit 1. A ce stade, pour résoudre mon problème il faudrait que je calcule le nombre de jours qui ont enregistré au moins une visite. Le hic, c'est qu'il faut faire le compte pour des valeurs date: 2011-12-14 11:05 et 2011-12-14 13:10 ne font qu'un jour. Etant donné que je n'ai jamais utilisé la fonction GROUP BY, je suis un peu perdu... Merci |
|
|
00
|
|
|
#9 | |
|
Expert Confirmé
![]() Inscription : mai 2002 Messages : 1 655 ![]() |
Pour le problème de date il faudra utiliser les fonctions de formatage de date :
http://dev.mysql.com/doc/refman/5.5/...functions.html A intégrer dans la 1ere requete et le group by associé. Vous avez toute la doc necessaire dans ce poste, je vous laisse chercher. Ensuite : Citation:
Vu votre présentation du sujet, le problème sera résolu une fois que vous aurez géré le formatage de votre timestamp en date dans la sous-requête. |
|
|
|
00
|
|
|
#10 | ||
|
Invité régulier
![]() Inscription : janvier 2011 Messages : 54 ![]() |
J'y suis presque pour ma requête pour compter le nombre de jours visités sur le mois:
Code :
Avec cette requête, j'obtiens le détail des jours visités, il reste à incorporer mon count pour obtenir la valeur 5. Une idée pour incorporer le count dans la requête ci-dessus? Merci |
||
|
|
00
|
|
|
#11 | ||
|
Expert Confirmé
![]() Inscription : mai 2002 Messages : 1 655 ![]() |
L'idée serai que vous reprenniez le poste #7 de ce topic et que vous compreniez ce que je vous ai proposé
Concernant le reformatage de vos date il y a aussi cette solution : Code :
|
||
|
|
00
|
|
|
#12 | ||||
|
Invité régulier
![]() Inscription : janvier 2011 Messages : 54 ![]() |
En effet
J'ai trouvé la requête qui me permet de calculer le nombre de jours visités sur une période: Code :
Code :
|
||||
|
|
00
|
|
|
#13 | ||
|
Invité régulier
![]() Inscription : janvier 2011 Messages : 54 ![]() |
Voilà, j'ai trouvé, le résultat me paraît correct:
Code :
Encore merci pour vos idées. |
||
|
|
00
|
|
|
#14 |
![]() ![]() |
Dans votre besoin, vous parliez des jours ouvrés. Je ne retrouve pas cette notion dans votre requête qui va prendre toutes les dates de la table.
__________________
Philippe Leménager. Ingénieur d'étude à l'École Nationale de Formation Agronomique. Mon blog sur la conception des BDD, le langage SQL, le PHP avec Zend Framework... « Ce que l'on conçoit bien s'énonce clairement, et les mots pour le dire arrivent aisément ». (Nicolas Boileau) À la maison comme au bureau, j'utilise Mandriva Linux ou Mageïa ! Soutenons l'industrie logicielle française ! Linuxiens, comptez-vous ! |
|
00
|
|
|
#15 | ||
|
Invité régulier
![]() Inscription : janvier 2011 Messages : 54 ![]() |
C'est vrai et la requête suivante affiche le nombre de jours où il y a eu au moins une visite (j'en déduis le nombre de jours ouvrables) vu que dans mon cas, il est potentiellement impossible qu'aucune visite ne soit effectuée un jour ouvrable):
Code :
|
||
|
|
00
|
Copyright © 2000-2012 - www.developpez.com