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