Sqlserver
 sql >> Base de Dados >  >> RDS >> Sqlserver

Como calcular a média/soma de dados em um dia no SQL Server 2005


Uma possibilidade, se você precisar fazer isso com bastante frequência:adicione três colunas computadas para dia, mês e ano à sua tabela. Essas colunas são calculadas automaticamente com base no timestamp coluna, e eles são apenas valores inteiros, então eles são fáceis de usar em um GROUP BY .

Para fazer isso, use estas instruções 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

Agora, você pode selecionar facilmente seus dados com base em qualquer dia que desejar:
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