moyenne de durée/ date

Répondre


Cette question est un moyen d’empêcher des soumissions automatisées de formulaires par des robots.
Smileys
:D :) :( :o :shock: :? 8-) :lol: :x :P :oops: :cry: :evil: :twisted: :roll: :wink: :!: :?: :idea: :arrow: :| :mrgreen: =D> #-o =P~ :^o :non: :priere: 8-|
Voir plus de smileys
  Revue du sujet
 

  Étendre la vue Revue du sujet : moyenne de durée/ date

par zeus » 24 juin 2005, 12:30

Pense à cliquez sur le bouton [RESOLU] qui se trouve en haut à gauche au dessus des topics

merci

par goth » 24 juin 2005, 12:29

Voila c ma solution final :

select idcab, sec_to_time(avg(time_to_sec(timediff(heurefin,heuredeb)))) from connexion2 group by idcab

par pjl » 24 juin 2005, 12:02

[RESOLU] alors ?

par goth » 24 juin 2005, 11:02

merci c'est pas exactement ca mais ca m'a bien mis sur la voie.

donc avec le meme schéma que ci dessus, pour faire une moyenne des durée de connexion on peut faire :

Code : Tout sélectionner

select idcab, avg(time_to_sec(timediff(heurefin,heuredeb))) from connexion group by idcab
ca renvoir la moyenne en seconde donc il faut voir à reformatter la chose.

je sais pas si c tordu mais à priori ca marche

(au passge on peut peu etre rajouter un where heurefin is not null mais a priori ca change pas le résultat des test

thx ouckileou

par ouckileou » 24 juin 2005, 10:03

effectivement c'est possible que tu ne puisses pas faire une moyenne directement sur une date

une solution pourrait être de transformer en entier (timestamp), faire ta moyenne avec AVG() puis reformater ensuite

je vois ça par exemple :
UNIX_TIMESTAMP()
Si UNIX_TIMESTAMP() est appelé avec un argument date , elle retourne le timestamp correspondant à cette date

ça pourrait peut-être faire ce que tu veux

tu sélectionnes les deux timestamp, tu fais la différence, puis la moyenne de ces différences puis tu reformates

ce n'est qu'une idée à creuser éventuellement, c'est peut-être un peu tordu :)

moyenne de durée/ date

par goth » 24 juin 2005, 09:44

bonjour tlm,
j'ai une table dont le schéma est le suivant :

Code : Tout sélectionner

CREATE TABLE `connexion` ( `idcab` varchar(20) NOT NULL default '', `datedebut` date NOT NULL default '0000-00-00', `heuredebut` time NOT NULL default '00:00:00', `heurefin` time default NULL, PRIMARY KEY (`idcab`,`datedebut`,`heuredebut`) )
ca représente des connexion/deconnexion au site.
J'aimerais faire une moyenne des durée :
j'arrive a faire :
SELECT idcab, timediff(heurefin,heuredebut) FROM connexion
qui me renvoie la durée d'une connexion

mais ce que je voudrais faire c'est quelque chose comme :
SELECT idcab, avg(timediff(heurefin,heuredebut)) FROM connexion group by idcab
mais avg n'a pas l'air de marcher sur les dates.

Mais comment faire! (je suis pret a revoir totalement ma table et ses champs si vous pensez que ce n'est pas le plus judicieux)