Requete SQL group by date

Hachka
Invité n'ayant pas de compte PHPfrance

19 août 2010, 17:10

Bonjour a tous,

je cherche en vain depuis ce matin comment faire pour grouper par tranche de 5 minutes, en effet je vous explique ce que je souhaiterais faire:

Imagine une db avec comme champ une date d'inscription , un id , un nom, etc... et une autre db vide


la première inscription, a eu lieu il y a 10 ans, et je souhaiterais, enregistrer dans une autre base de donnée, le nombre d'inscription par tranche de 5 minutes.

Et la je bloque complètement...

Donc si vous pouviez m'éclairer, je vous en serait très reconnaissant

merci d avance.

Hachka
Invité n'ayant pas de compte PHPfrance

20 août 2010, 10:33

Personne ne peut m'aider ?

ignatus
Invité n'ayant pas de compte PHPfrance

17 mai 2011, 05:51

bonjour,


si tu as trouvé, je suis tout à fait intéressé, merci :)

ViPHP
ViPHP | 2291 Messages

17 mai 2011, 22:10

ImageCe que l'on apprend par l'effort reste toujours ancré beaucoup plus longtemps.

Petit nouveau ! | 4 Messages

24 mai 2011, 20:47

SELECT COUNT( * ) , DATE_FORMAT( date_ajout, "%d/%m/%Y %H:%i" ) AS nb
FROM ma_table
GROUP BY FLOOR((UNIX_TIMESTAMP(date_ajout) / 600))

Si tu détermine la valeur entière immédiatement inférieure à la division par 600 (600s = 5 minutes) du timestamp de ta date, tu obtiens la même valeur pour toutes les occurrences à l'intérieur d'une plage de 5 minutes.
0s à 599 => 0
600 à 1199 => 1
etc.
Donc le GROUP BY doit fonctionner dans le sens que tu souhaite. Je n'ai pas le jeu de données qui me permettrait de le vérifier.