Hvis du grupperede efter HOUR(time)
så skal du bruge HOUR(time)
i dine udvalgte udtryk og ikke time
. For eksempel:
SELECT HOUR(time), COUNT(*)
FROM `records`
WHERE time > DATE_SUB(NOW(), INTERVAL 24 HOUR)
GROUP BY HOUR(time)
ORDER BY HOUR(time)
Alternativt kan du gruppere efter det udtryk, du ønsker at returnere:
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 )
Hvis du undrede dig, er det sikkert at kalde NOW()
flere gange i samme forespørgsel som denne. Fra manualen
: