Comptage

Petit nouveau ! | 5 Messages

12 mars 2013, 22:23

Bonjour à tous,

Petite question sur un traitement que j'aimerais réaliser directement dans une requête pour éviter de passer par un lourd script en PHP.

Je simplifie le contexte pour se concentrer uniquement sur la problématique, imaginons que j'ai une table "membres" et une table "clics" avec donc des membres dont on comptabilise les clics.

Je fais des stats pour savoir globalement le nombre de clics par jour et aussi par heure (tous membres confondus).

La problématique : Dans ces stats, je voudrais ne comptabiliser qu'1 clic par membre et par mois, c'est-à-dire que si un membre a fait 9 clics en Mars je ne voudrais compter que le 1er clic dans les stats.

Si je faisais des stats par mois il serait facile de faire un COUNT + DISTINCT avec le GROUP BY par mois mais là avec un GROUP BY par date + heure je ne vois pas.

Voyez-vous une solution ?

Merci d'avance

ViPHP
AB
ViPHP | 5818 Messages

13 mars 2013, 18:11

Une sous requête pour faire un premier tri et la requête principale sur le résultat ? Bon je dis ça sur le principe mais j'ai pas le temps de regarder plus en détail pour voir si c'est possible...

Bibibibi
Invité n'ayant pas de compte PHPfrance

18 mars 2013, 21:23

Bonjour,

perso, un champ "premier_clic" avec une vérification-insertion d'un timestamp, c'est ce que moi je ferait !

Lorsque le membre clic, le code vérifie si il y a déja eu une insertion dans ce champ, si oui, rien ne se passe, si non, le code passe à l'insert into ...

De +, tu peux convertir le timestamp (jour, heure, minute, seconde ....) pour affichage et/ou comparaison !

A cela, tu rajoute une crontab pour réinitialisé chaque mois !

Bon, c'est un début d'idée, c'est à toi de l'adapter à ce que tu souhaite exactement !

:)

Petit nouveau ! | 5 Messages

20 mars 2013, 00:13

Merci pour vos réponses :wink:

Bon je me doutais qu'on ne pouvait pas le faire directement en 1 requête, il va falloir que je passe par des modifs ou un script.