Sqlserver
 sql >> Base de données >  >> RDS >> Sqlserver

Comment faire la moyenne/somme des données en une journée dans SQL Server 2005

Une possibilité, si vous avez besoin de le faire assez souvent :ajoutez trois colonnes calculées pour le jour, le mois, l'année à votre table. Ces colonnes sont calculées automatiquement en fonction de l'timestamp colonne, et ce ne sont que des valeurs entières, elles sont donc faciles à utiliser dans un GROUP BY .

Pour ce faire, utilisez ces instructions T-SQL :

ALTER TABLE dbo.ROASTER_FEED ADD TSDay AS DAY(timestamp) PERSISTED
ALTER TABLE dbo.ROASTER_FEED ADD TSMonth AS MONTH(timestamp) PERSISTED
ALTER TABLE dbo.ROASTER_FEED ADD TSYear AS YEAR(timestamp) PERSISTED

Désormais, vous pouvez facilement sélectionner vos données en fonction du jour de votre choix :

SELECT TSDay, TSMonth, TSYear, SUM(FEED)   -- use AVG(FEED) for average values
FROM dbo.ROASTER_FEED
WHERE TSYear = 2011 AND TSMonth = 8   -- or whatever you want to grab from the table!
ORDER BY timestamp
GROUP BY TSDay, TSMonth, TSYear