sql >> Database >  >> RDS >> Sqlserver

Gegevens in een dag gemiddeld/optellen in SQL Server 2005

Een mogelijkheid, als u dit vaak genoeg moet doen:voeg drie berekende kolommen voor dag, maand en jaar toe aan uw tabel. Die kolommen worden automatisch berekend op basis van de timestamp kolom, en het zijn gewoon gehele waarden, dus ze zijn gemakkelijk te gebruiken in een GROUP BY .

Gebruik hiervoor deze T-SQL-statements:

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

Nu kunt u eenvoudig uw gegevens selecteren op elke gewenste dag:

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


  1. Rijen extraheren uit een database inclusief afhankelijke rijen

  2. Opgemaakte verklaring met ON DUPLICATE KEY

  3. Hoe een waarde doorgeven van Android naar php-webservice en deze ophalen?

  4. Haal de op één na hoogste waarde in een MySQL-tabel