Re: Obtener el más cercano

From: Daniel Hernández <dhernand(at)scio(dot)cl>
To: pgsql-es-ayuda(at)postgresql(dot)org
Subject: Re: Obtener el más cercano
Date: 2008-06-26 19:53:24
Message-ID: 20080626155324.25a1228b.dhernand@scio.cl
Views: Raw Message | Whole Thread | Download mbox | Resend email
Thread:
Lists: pgsql-es-ayuda

Jaime Casanova escribió:
> > SELECT * FROM t ORDER BY abs(x - x0) LIMIT 1;
>
> no entiendo como resuelve tu problema este SELECT, podrias dar un
> ejemplo poniendo valores?

La idea es que si tienes los valores de x = {1,12,30,102,340,323} y
buscas con x0 = 104 te entregue el registro con x = 102.

> > Pero me tinca que podría estar calculando la función abs para todos los
> > registros de la tabla, lo que no aprovecharía el índice B-Tree en la
> > columna x.
>
> creas un indice funcional
> create index idx1 on tabla (abs(x));

No sabía que existían los índices funcionales, pero de todos modos la
solución que me dio Alvaro Herrera es lo que quería.

Saludos

--
Daniel Hernández
http://www.scio.cl

In response to

Browse pgsql-es-ayuda by date

  From Date Subject
Next Message Johnny Verdugo V. 2008-06-26 20:04:57 dar de baja
Previous Message Daniel Hernández 2008-06-26 19:45:44 Re: Obtener el más cercano