I have a database table customers
that records among others the arrival time of clients for a one month data. So, the customers
table contains among other a column named arrival_time
. (e.g., arrival_time = 12/1/2020 12:01:39 AM, arrival_time = 12/1/2020 12:01:34 AM etc…)
Is it possible to design/write an SQL query that returns the numbers of customers that arrived each second (or say, min, hour...) in this this one month data.
Thank you.
CodePudding user response:
If you are using PostgreSQL you can use DATE_TRUNC()
. For example:
select
date_trunc('minute', arrival_time) as at,
count(distinct customer_id) as cnt
from t
group by date_trunc('minute', arrival_time)
You can change 'minute'
for 'day'
, 'week'
, 'second'
, etc. See https://www.postgresql.org/docs/current/functions-datetime.html#FUNCTIONS-DATETIME-TRUNC