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 ([email protected])
To make changes to your subscription:
http://www.postgresql.org/mailpref/pgsql-general