Als je hebt gegroepeerd op HOUR(time)
dan moet je HOUR(time)
. gebruiken in uw geselecteerde uitdrukkingen, en niet time
. Bijvoorbeeld:
SELECT HOUR(time), COUNT(*)
FROM `records`
WHERE time > DATE_SUB(NOW(), INTERVAL 24 HOUR)
GROUP BY HOUR(time)
ORDER BY HOUR(time)
U kunt ook groeperen op de uitdrukking die u wilt retourneren:
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 )
Mocht je je dit afvragen, het is veilig om NOW()
. te bellen meerdere keren in dezelfde query als deze. Uit de handleiding
: