sql >> Databasteknik >  >> RDS >> Sqlserver

Hur man genomsnitt/summa data på en dag i SQL Server 2005

En möjlighet, om du behöver göra detta tillräckligt ofta:lägg till tre beräknade kolumner för dag, månad, år till din tabell. Dessa kolumner beräknas automatiskt baserat på timestamp kolumn, och de är bara heltalsvärden, så de är lätta att använda i en GROUP BY .

För att göra detta, använd dessa T-SQL-satser:

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 kan du enkelt välja din data baserat på vilken dag du vill:

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. Använd textutdata från en funktion som ny fråga

  2. Hur man dynamiskt genererar MYSQL UPDATE-sats baserat på definierade variabler från HTML FORM

  3. CodeIgniter Välj uttalande med Where-klausul

  4. Hur man itererar efter rad genom en mysql-fråga i php