J'utilise SQL Server 2008 et à la recherche comment créer une telle requête:requête SQL pour le groupe par jour et calculer le temps écoulé (Agrégation des)
J'ai une table:
Username nvarchar(50), LogDate datetime
Test1, 2012.01.01 00:00:00
Test2, 2012.01.01 00:00:02
Test1, 2012.01.01 00:00:05
Test3, 2012.01.01 00:00:06
Test1, 2012.01.02 00:01:01
Test2, 2012.01.02 00:02:50
Test1, 2012.01.02 00:01:01
Chaque quelques secondes les utilisateurs envoient des mises à jour pour insérer la date-heure actuelle avec son nom d'utilisateur dans la table de journal. J'ai besoin de calculer combien d'heures les utilisateurs étaient "en ligne" tous les jours.
Je suppose que la requête doit faire la somme de DateDiff entre deux lignes avec le même nom d'utilisateur groupé par jour.
J'ai essayé d'utiliser le rang, mais je n'ai pas ce que je veux.
Nous vous remercions de votre aide à l'avance.
"Je suppose que la requête devrait additionner DateDiff entre deux rangées avec le même nom d'utilisateur groupé par jour." Probablement pas. Si je me suis connecté pendant quelques minutes juste après minuit, puis connecté à nouveau quelques minutes avant minuit, cet algorithme afficherait presque 24 heures au lieu de 4 ou 5 minutes. –
Il est très mauvais d'insérer une ligne dans la table. Il suffit d'insérer et d'enregistrer l'heure de début quand ils se connectent et mettre à jour l'heure de fin à la période régulière. De cette façon, vous savez combien de temps ils ont passé sur votre site. –
Maintenant, je ne suggère pas que c'est un bon moyen de suivre les utilisateurs, mais j'avais une question similaire à cela il y a un certain temps. J'ai fondamentalement décomposé la journée en minutes et vérifié pour "à l'heure" pendant cette minute. http://stackoverflow.com/questions/761700/how-can-i-check-for-average-concurrent-events-in-a-sql-table-based-on-the-date – scottm