Re: count question - Mailing list pgsql-sql

From Craig Ringer
Subject Re: count question
Date
Msg-id 47FC25DB.2090803@postnewspapers.com.au
Whole thread Raw
In response to count question  (novice <user.postgresql@gmail.com>)
Responses Re: count question  (rdeleonp@gmail.com)
List pgsql-sql
novice wrote:

> Is it possible to write a query to produce:
> 
>  meter_id | no_of_bays |   bay_id
> ----------+------------+-----------
>      5397 |          2 |   5397-01
>      5397 |          2 |   5397-02
>      5409 |          3 |   5409-01
>      5409 |          3 |   5409-02
>      5409 |          3 |   5409-03

Sure. One way, not necessarily a particularly clever or efficient way,
is to do a join with:

generate_series(1, (select max(no_of_bays) from meter)) as i

and use a WHERE clause to select for `i <= no_of_bays'


eg:

SELECT   meter_id, no_of_bays, meter_id::text||'-'||i::text AS bay_id
FROM meter,    generate_series(1, (select max(no_of_bays) from meter)) as i
WHERE i <= no_of_bays;


--
Craig Ringer


pgsql-sql by date:

Previous
From: novice
Date:
Subject: count question
Next
From: rdeleonp@gmail.com
Date:
Subject: Re: count question