これを頻繁に行う必要がある場合の 1 つの可能性:日、月、年の 3 つの計算列をテーブルに追加します。これらの列は timestamp
に基づいて自動的に計算されます 列であり、それらは単なる整数値であるため、GROUP BY
で簡単に使用できます .
これを行うには、次の 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
これで、希望する日付に基づいてデータを簡単に選択できるようになりました:
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