एक संभावना, यदि आपको इसे अक्सर पर्याप्त करने की आवश्यकता होती है:अपनी तालिका में दिन, महीने, वर्ष के लिए तीन गणना किए गए कॉलम जोड़ें। उन स्तंभों की गणना 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