| From: | Ketema Harris <ketema(at)gmail(dot)com> | 
|---|---|
| To: | pgsql-general(at)postgresql(dot)org | 
| Subject: | Re: Grouping Question | 
| Date: | 2009-07-31 17:02:25 | 
| Message-ID: | 405F8863-AA9C-4955-9447-CEDB4B2657E8@midnightoilconsulting.com | 
| Views: | Whole Thread | Raw Message | Download mbox | Resend email | 
| Thread: | |
| Lists: | pgsql-general | 
OK that worked, but now how do I get the integer returned by extract  
into a human friendly string like
7/1 - 7/8 or something similar ?
On Jul 31, 2009, at 12:37 PM, Rob Wickert wrote:
> You would use some of postgresql built in date functions to extract  
> the week from the date and group by that
>
> i.e.
>
> select carrier, extract(week from start_time) as week,  
> sum(call_length) as totallength, sum(cost) as total_cost
> from mytable
> group by carrier, extract(week from start_time)
> order by week, carrier
>
> you'll probably want to extract the year as well so dates weeks from  
> alternate years don't get merged together
>
> Ketema Harris wrote:
>> I have a table defined as
>> CREATE TABLE mytable
>> (
>>  carrier varchar,
>>  start_time timestamp with time zone,
>>  call_date date,
>>  cost numeric,
>>  call_length numeric
>> )
>> I want to create a query that will generate a the following columns:
>> carrier, week, sum(call_length) as totallength, sum(cost) as  
>> total_cost
>> from mytable
>> group by carrier, (WHAT HERE?)
>> order by week, carrier
>> week is defined as a date range so something like 7/6/2009 -  
>> 7/13/2009
>> I would need the timestamps to be grouped into 7 day intervals  
>> starting from the first one and moving through the table. is this  
>> possible in a single query or would I have to write a function ?
| From | Date | Subject | |
|---|---|---|---|
| Next Message | Tom Lane | 2009-07-31 17:27:05 | Re: size of data stored in gist index | 
| Previous Message | Rob Wickert | 2009-07-31 16:38:10 | Re: Grouping Question |