Home > Database > Mysql Tutorial > How to Group Timestamps into 5-Minute Intervals for Count Queries?

How to Group Timestamps into 5-Minute Intervals for Count Queries?

Linda Hamilton
Release: 2025-01-15 08:15:45
Original
800 people have browsed it

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>
Copy after login

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>
Copy after login

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>
Copy after login

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!

source:php.cn
Statement of this Website
The content of this article is voluntarily contributed by netizens, and the copyright belongs to the original author. This site does not assume corresponding legal responsibility. If you find any content suspected of plagiarism or infringement, please contact admin@php.cn
Latest Articles by Author
Popular Tutorials
More>
Latest Downloads
More>
Web Effects
Website Source Code
Website Materials
Front End Template