SQL Server: Moyenne d'impulsions par heure et jour de la semaine

Arrière-plan

J'ai une table dans un environnement SQL Server qui contient un journal d'activité variés que je suis suivi. Journal particulier les éléments de codes uniques de catégoriser ce que l'activité prend de la place et un champ datetime pistes lorsque cette activité a eu lieu.

Problème

Je voudrais, à l'aide d'une seule requête ou une procédure stockée, obtenir une moyenne horaire compte de l'activité, regroupés par jour de la semaine. Exemple:

Day      | Hour | Average Count
-------------------------------
Monday   | 8    | 5
Monday   | 9    | 5
Monday   | 10   | 9
...
Tuesday  | 8    | 4
Tuesday  | 9    | 3
...etc

Droit maintenant, j'ai une requête de configuration qui crache le nombre de comptes par heure par jour, mais mon problème est de prendre un pas de plus et d'obtenir en moyenne par jour de la semaine. Voici ma requête:

SELECT CAST([time] AS date) AS ForDate,
   DATEPART(hour, [time]) AS OnHour,
   COUNT(*) AS Totals
FROM [log] WHERE [code] = 'tib_imp.8'
GROUP BY CAST(time AS date),
   DATEPART(hour,[time])
   ORDER BY ForDate Asc, OnHour Asc

Des suggestions quant à la façon dont je peux l'accomplir?

Merci d'avance!

  • Juste group by semaine.
  • Sera que la moyenne de la numération si?
  • Non, si vous voulez faire la moyenne d'un comte, alors vous aurez à exécuter d'abord comte, puis exécutez une moyenne sur les résultats: select field, avg(countField) from ( select field, count(*) as countField group by field) result group by field
  • Si vous fournissez une source de données (par exemple, comment vous avez obtenu 5) nous aurons une meilleure idée de exactement comment vous souhaitez obtenir des totaux, des moyennes, ou des moyennes de totaux. Le mot problème est un peu ambigu et sans source de données, il est difficile de déterminer où 5,5,9 etc. viennent de.
InformationsquelleAutor mbeasley | 2012-04-26