Fwd: DISTINCT ON con columna hstore

From: Jaime Casanova <jaime(at)2ndquadrant(dot)com>
To: Foros Postgre Ecuador <ecpug(at)postgresql(dot)org>
Subject: Fwd: DISTINCT ON con columna hstore
Date: 2013-05-17 23:36:39
Message-ID: CAJKUy5hASgb09FL2Y6oDsohztoZ8F3CFeomzKPhABFucZo-AFg@mail.gmail.com
Views: Raw Message | Whole Thread | Download mbox | Resend email
Thread:
Lists: ecpug

Saludos,

Acabo de notar que Tonny no envio su resolución al foro, lo que
significa que nadie se beneficio de su solución... mal Tonny, muy
mal...

---------- Forwarded message ----------
From: Tonny <tonny(dot)lists(at)gmail(dot)com>
Date: 2013/1/24
Subject: Re: [ecpug] DISTINCT ON con columna hstore
To: Jaime Casanova <jaime(at)2ndquadrant(dot)com>

On 01/21/2013 05:18 PM, Jaime Casanova wrote:
>
> 2013/1/21 Tonny <tonny(dot)lists(at)gmail(dot)com>:
>>
>> SELECT DISTINCT ON (tags->'name') tags->'name' AS nombre, columna2, columna3
>> FROM tabla1;
>>
>> Hola a todos.
>> Como puedo hacer un distinct ON, solo de un atributo de un campo hstore
>>
> mmm... interesante, parece que en ese caso debes filtrar los valores nulos
>
> SELECT DISTINCT ON (tags->'name') tags->'name' AS nombre, columna2, columna3
> FROM tabla1
> WHERE (tags->'name') IS NOT NULL;
>
>
> En realidad tiene sentido, tags->'name' devuelve nulo si en el hstore
> no esta el campo 'name' y como siempre se cumple que NULL <> NULL el
> opina que la expresión es distinta en cada registro y lo muestra.
>
> --
> Jaime Casanova www.2ndQuadrant.com
> Professional PostgreSQL: Soporte 24x7 y capacitación
> Phone: +593 4 5107566 Cell: +593 987171157

Lo solucioné así no sé como mejorar mas esa consulta :) o ponerla mas clara.

SELECT DISTINCT ON (nombre) nombre, distancia FROM
(
SELECT tags->'name' AS nombre, st_distance(linestring,
ST_GeomFromText('POINT(-78.10563426666833 0.3187742717967793)',4326))
* 111177.473352 as distancia
FROM osm.ways
WHERE exist(tags, 'name') AND exist(tags, 'highway')
ORDER BY distancia
) AS t1
WHERE distancia < 200

--
Jaime Casanova www.2ndQuadrant.com
Professional PostgreSQL: Soporte 24x7 y capacitación
Phone: +593 4 5107566 Cell: +593 987171157

In response to

Responses

Browse ecpug by date

  From Date Subject
Next Message Jaime Casanova 2013-05-17 23:38:57 Re: DISTINCT ON con columna hstore
Previous Message Jaime Casanova 2013-05-14 16:17:14 PostgreSQL 9.3 Beta 1 Liberado