Sqlserver
 sql >> Datenbank >  >> RDS >> Sqlserver

So berechnen/summieren Sie Daten an einem Tag in SQL Server 2005

Eine Möglichkeit, falls Sie dies oft genug tun müssen:Fügen Sie Ihrer Tabelle drei berechnete Spalten für Tag, Monat, Jahr hinzu. Diese Spalten werden automatisch basierend auf dem timestamp berechnet -Spalte, und sie sind nur ganzzahlige Werte, sodass sie einfach in einer GROUP BY verwendet werden können .

Verwenden Sie dazu diese T-SQL-Anweisungen:

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

Jetzt können Sie Ihre Daten ganz einfach anhand eines beliebigen Tages auswählen:

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