On Jul 27, 2010, at 6:07 PM, Patrick May wrote:

> On Jul 27, 2010, at 7:12 PM, Dann Corbit wrote:
>>>     I have a table containing events with timestamps.  I would like
>>> to generate a histogram of the number of each type of event for each
>>> half-hour period from 8:00 am to 6:00 pm.  Are there any tools that
>>> will help me do this?
>> 
>> GROUP BY is essentially a histogram generator.
>> The age() function will give you an interval.
>> 
>> I am not sure if you want to combine half hour periods from different days 
>> with the same time or not (IOW are 8AM Tuesday and 8AM Wednesday supposed to 
>> be grouped together or not?)
>> 
>> I guess that if you are more specific about exactly what you want you can 
>> get a better answer.  Your requirement is a little bit vague or ambiguous.
> 
>       I don't mind using Excel to generate the actual graphic.  Ideally I'd 
> get output something like this:
> 
>       date    start      end    event count
> ---------- -------- -------- -------- -----
> 2010-07-27 08:00:00 08:29:59  EVENT_1    20
> 2010-07-27 08:00:00 08:29:59  EVENT_2    15
> 2010-07-27 08:30:00 08:59:59  EVENT_1    10
> 2010-07-27 08:30:00 08:59:59  EVENT_3     5
> 
> I'm quite familiar with SQL, but I'm not sure how to generate the half hour 
> intervals without hard coding them.

There's probably a better way, but something like this might work:

select date_trunc('hour', foo) + interval '30 minutes' * floor(extract(minute 
from foo) / 30) as start, event, count(*) from bar group by 1, 2 order by 1 asc;

Cheers,
  Steve


-- 
Sent via pgsql-general mailing list (pgsql-general@postgresql.org)
To make changes to your subscription:
http://www.postgresql.org/mailpref/pgsql-general

Reply via email to