SUM et moyenne

J'ai une table comme celle-ci

ID, Connected, Disconnected 

J'ai besoin de calculer combien chaque identifiant passe du time connecté, ce qui est facile:

 SELECT ID, CONVERT (INT, SUM ( DATEDIFF(second, Connected, Disconnected)))/60.00 

Et j'ai également besoin de find le time moyen de connection (ci-dessus divisé par le nombre de connections (apparences d'ID) pour chaque ID.

Quelque chose comme ça (qui ne marche pas)

 SELECT ID, CONVERT (INT, SUM ( DATEDIFF(second, Connected, Disconnected)))/60.00, CONVERT (INT, SUM ( DATEDIFF(second, Connected, Disconnected)))/60.00/(SELECT COUNT ID) 

Comment faire ça?

Merci.

Une autre solution: Ajoutez une autre colonne à votre table et appelez-la Diff (ou quelque chose) en mode de design que vous définissez la «Spécification de colonne calculée» à «(secondiff, [Connecté], [Déconnecté]))" Maintenant vous avez une colonne avec la valeur de diff calculée!

Ensuite, vous pouvez regrouper sans agrégat ou une erreur de sous-requête 🙂

 SELECT ID, AVG(Diff)/60 -- Diff = Your computed column FROM YourTable GROUP BY ID 

J'espère que cela aide..

 SELECT ID, AVG(CONVERT (INT, SUM (DATEDIFF(second, Connected, Disconnected)))/60.00) GROUP BY ID