Home >Database >Mysql Tutorial >How to Group Timestamps into 5-Minute Intervals for Count Queries?
Group timestamps by 5 minute intervals for count queries
Question:
A query to count the number of occurrences of John in a specific time range, but the result is an ungrouped timestamp and its count. The goal is to group results into 5-minute intervals.
Solution:
To group results into 5-minute intervals, you can use MySQL and PostgreSQL with a specific syntax:
PostgreSQL:
<code class="language-sql">SELECT date_trunc('minute', timestamp) + INTERVAL '5 minutes' * (EXTRACT(MINUTE FROM timestamp)::integer / 5) AS five_minute_interval, name, COUNT(b.name) FROM time a, id WHERE … GROUP BY five_minute_interval, name ORDER BY five_minute_interval;</code>
MySQL:
<code class="language-sql">SELECT FROM_UNIXTIME(FLOOR(UNIX_TIMESTAMP(timestamp) / 300) * 300) AS five_minute_interval, name, COUNT(b.name) FROM time a, id WHERE … GROUP BY five_minute_interval, name ORDER BY five_minute_interval;</code>
In both queries, the GROUP BY
clause is grouped by the rounded result of the timestamp divided by 300 (representing a 5-minute interval). This effectively creates 5-minute bins for the timestamps and assigns each timestamp to the corresponding bin. PostgreSQL uses the date_trunc
function to handle truncation and grouping of timestamps more cleanly, while MySQL uses the FROM_UNIXTIME
and FLOOR
functions to achieve the same functionality.
Output:
The output will now show results grouped by 5-minute intervals, and a corresponding count of the number of occurrences of John:
<code>five_minute_interval name COUNT(b.name) ------------------------ ---- ------------- 2010-11-16 10:30:00 John 2 2010-11-16 10:35:00 John 10 2010-11-16 10:40:00 John 0 2010-11-16 10:45:00 John 8 2010-11-16 10:50:00 John 0 2010-11-16 10:55:00 John 11</code>
Note: The WHERE …
part in the code needs to be replaced with your query conditions according to the actual situation. Additionally, to ensure readability of the results, the ORDER BY five_minute_interval
clause is added. Improved SQL statements more accurately implement grouping at 5-minute intervals and avoid potential rounding errors.
The above is the detailed content of How to Group Timestamps into 5-Minute Intervals for Count Queries?. For more information, please follow other related articles on the PHP Chinese website!