Re: make view with union return one record

Поиск
Список
Период
Сортировка
От Andy Colson
Тема Re: make view with union return one record
Дата
Msg-id 4C348ED4.7080204@squeakycode.net
обсуждение исходный текст
Ответ на Re: make view with union return one record  (Merlin Moncure <mmoncure@gmail.com>)
Список pgsql-general
On 7/7/2010 8:27 AM, Merlin Moncure wrote:
> On Tue, Jul 6, 2010 at 3:43 PM, Andy Colson<andy@squeakycode.net>  wrote:
>> I have gis data in layers, and a pin might appear in either layer, or both
>> (parcelPoly, parcelPoint), or neither (and I dont care which I find)... so I
>> have this view:
>>
>>
>> create view howardia.getPoint(shapeid, x, y, acres, pin, extent) as
>>   SELECT gid,
>>         st_x(st_centroid(the_geom)) AS x,
>>         st_y(st_centroid(the_geom)) AS y,
>>         acreage,
>>         county_pin,
>>         st_box2d(st_expand(the_geom, 100))
>>   FROM howardia.parcelPoly
>>   UNION ALL
>>   SELECT gid,
>>         st_x(the_geom) AS x,
>>         st_y(the_geom) AS y,
>>         acreage,
>>         county_pin,
>>         st_box2d(st_expand(the_geom, 100))
>>   FROM howardia.parcelPoint;
>>
>> Which works fine for what I'm using.. it returns one or two records, and my
>> code just takes the first record and runs with it.
>>
>> but now... I'm adding something new, and having it return multiple records
>> per pin is causing problems.  I tried adding a limit inside the view but
>> then it never returns anything:
>
> ??? why not --  can you double check that?
>
> create view l as select * from (select 'a' union all select 'b') q limit 1;
>
> select * from l;
>   ?column?
> ----------
>   a
> (1 row)
>
> merlin

Ok, I found it.  I don't know why I was making it more difficult than it
needed to be.  Once I stopped thinking about the view, and thought of it
just like any other table, then I have dups, and I want one of each..
and that can be solved with distinct on:

select distinct on (pin) *
from getpoint
where pin in ('110250821020000', '320770000010000');

Thanks for letting me think out loud.

-Andy

В списке pgsql-general по дате отправления:

Предыдущее
От: Tom Lane
Дата:
Сообщение: Re: optimizer choosing the wrong index
Следующее
От: Johan Andersson
Дата:
Сообщение: Trigger for modification timestamp column