अगर आपने HOUR(time)
. के आधार पर ग्रुप किया है तो आपको HOUR(time)
. का उपयोग करना चाहिए आपके चुनिंदा भावों में, न कि time
. में . उदाहरण के लिए:
SELECT HOUR(time), COUNT(*)
FROM `records`
WHERE time > DATE_SUB(NOW(), INTERVAL 24 HOUR)
GROUP BY HOUR(time)
ORDER BY HOUR(time)
वैकल्पिक रूप से आप उस अभिव्यक्ति द्वारा समूहित कर सकते हैं जिसे आप वापस करना चाहते हैं:
SELECT COUNT(*), FLOOR( TIME_TO_SEC( TIMEDIFF( NOW(), time)) / 3600 )
FROM `records`
WHERE time > DATE_SUB(NOW(), INTERVAL 24 HOUR)
GROUP BY FLOOR( TIME_TO_SEC( TIMEDIFF( NOW(), time)) / 3600 )
ORDER BY FLOOR( TIME_TO_SEC( TIMEDIFF( NOW(), time)) / 3600 )
यदि आप सोच रहे थे, तो NOW()
. पर कॉल करना सुरक्षित है इस तरह की एक ही क्वेरी में कई बार। मैनुअल
से :