Sqlserver
 sql >> Database >  >> RDS >> Sqlserver

Come calcolare la media/somma dei dati in un giorno in SQL Server 2005

Una possibilità, se hai bisogno di farlo abbastanza spesso:aggiungi tre colonne calcolate per giorno, mese, anno alla tua tabella. Tali colonne vengono calcolate automaticamente in base al timestamp colonna e sono solo valori interi, quindi sono facili da usare in un GROUP BY .

Per fare ciò, usa queste istruzioni 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

Ora puoi selezionare facilmente i tuoi dati in base al giorno che desideri:

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