Il est souhaitable d'effectuer des calculs de moyenne sur un grand ensemble de données. Les données sont souvent capturées à partir des périphériques et nous voulons obtenir la moyenne du dernier jour, la moyenne de la dernière semaine, la moyenne du dernier mois et la moyenne de l'année dernière.Étalement de grandes quantités de données dans SQL Server
Malheureusement, il faut plusieurs minutes pour effectuer la moyenne des données de l'année précédente. Je n'ai qu'une connaissance de base de SQL et espère qu'il y a une bonne information ici pour accélérer les choses.
La table comporte un horodatage, un ID qui identifie le périphérique auquel les données appartiennent et une valeur de données en virgule flottante.
La requête que je me sers suit cet exemple général:
select avg(value)
from table
where id in(1,2,3,4) timestamp > last_year
Edit: Je dois préciser aussi qu'ils demandent que ces moyennes sont calculées sur une base de roulement. Comme dans "l'année à ce jour" moyennes. Je réalise que tout simplement en raison du volume de résultats, nous pourrions avoir à faire des compromis.
Nous vous remercions de votre réponse. J'espère pouvoir demander qu'ils modifient leur système pour s'adapter à cela. Je vais devoir y réfléchir un peu, ils veulent une moyenne de «l'année à ce jour» pour calculer assez souvent. – user438199
Vous êtes les bienvenus, j'ai édité la réponse en changeant "table temporaire" en "table de mise en cache" parce que je ne veux pas dire une table de mémoire-vie comme "table temporaire" peut se référer à. – aularon