RE: Combinaciones en Select

From: Edwin Quijada <listas_quijada(at)hotmail(dot)com>
To: <jarabal(at)gmail(dot)com>, <pgsql-es-ayuda(at)postgresql(dot)org>
Subject: RE: Combinaciones en Select
Date: 2009-08-05 15:13:13
Message-ID: BLU137-W2134DC6331BAE18140B84CE30D0@phx.gbl
Views: Raw Message | Whole Thread | Download mbox | Resend email
Thread:
Lists: pgsql-es-ayuda


xavi, muchas gracias , fijate que al final lo pense igual que tu pero despues de 3 horas de perdida de sueño. :P

Este fue un buen ejercicio para dsempolvar las neuronas .:)

*-------------------------------------------------------*
*-Edwin Quijada
*-Developer DataBase
*-JQ Microsistemas

*-Soporte PostgreSQL

*-www.jqmicrosistemas.com
*-809-849-8087
*-------------------------------------------------------*

----------------------------------------
> Date: Wed, 5 Aug 2009 13:31:15 +0200
> From: jarabal(at)gmail(dot)com
> To: pgsql-es-ayuda(at)postgresql(dot)org
> Subject: Re: [pgsql-es-ayuda] Combinaciones en Select
>
> Edwin,
>
> No sé si te servirá.
> Busca al menos 2 ocurrencias en 3 campos "n1, n2, n3" de valores dados en una lista, de uno o n valores "(m1,m2,m3,...,mn)"
> aplicando una
> interpretación binaria con los campos para hallar la combinación deseada.-
>
> n1 n2 n3 d
> 0 0 0 0
> 0 0 1 1
> 0 1 0 2
> 0 1 1 3
> 1 0 0 4
> 1 0 1 5
> 1 1 0 6
> 1 1 1 7
>
> (Dos unos, dos ocurrencias) resulta.-
>
> SELECT * FROM tabla
> WHERE /* n1 n2 n3 d */
> n2 IN (m1,m2,m3) AND n3 IN (m1,m2,m3) /* 0 1 1 3 */
> OR
> n1 IN (m1,m2,m3) AND n3 IN (m1,m2,m3) /* 1 0 1 5 */
> OR
> n1 IN (m1,m2,m3) AND n2 IN (m1,m2,m3) /* 1 1 0 6 */
> ;
>
> --
> Xavi
>
> Edwin Quijada escribió:
>> Esto no es un problema que tiene nada que ver con Postgres pero si de
>> SQL y selecciones y queria compartirlo a ver si alguien tiene una mejor idea
>>
>> Tengo una tabla con la siguiente estructura
>> id
>> n1
>> n2
>> n3
>> fecha
>>
>> El objetivo es seleccionar con 3 valores dados tambien los records que
>> cumplan con al menos dos. Hice el ejercicio y lo que me salio fue una
>> cantiadad de combinaciones para averiguar los que tienen al menos dos.
>> Ejemplo:
>>
>> Digamos que n1,n2, n3 son los valores en mi tabla m1,m2,m3 son los
>> valores dados para la seleccion. Lo que consegui fue lo siguiente para
>> seleccioonar los que cumplan con dos numeros iguales sin importar el orden
>>
>> n1 = m1 n1 = m1 n1 = m1 n1 = m1
>> n2 = m2 n2 = m3 n3 = m2 n3 = m3
>>
>> n1 = m2 n1 = m2 n1 = m3 n1 = m3
>> n2 = m1 n2 = m3 n2 = m1 n2 = m2
>>
>> Es decir , mi select lo construi con 16 comparaciones para encontrar los
>> posibles pares con estos 3 valores.
>> Alguien ha hecho algo diferente a esto para encontrar estos resultados ?
>>
>> Solo lo pongo por si acaso alguien ha hecho algo diferente para que lo
>> comparta.
>>
>> Gracias
>>
>> *-------------------------------------------------------*
>> *-Edwin Quijada
>> *-Developer DataBase
>> *-JQ Microsistemas
>> *-Soporte PostgreSQL
>> *-www.jqmicrosistemas.com
>> *-809-849-8087
>> *-------------------------------------------------------*
>>
>>
>>
>>
>
> --
> TIP 6: ¿Has buscado en los archivos de nuestra lista de correo?
> http://archives.postgresql.org/pgsql-es-ayuda
_________________________________________________________________

In response to

Browse pgsql-es-ayuda by date

  From Date Subject
Next Message Edwin Quijada 2009-08-05 15:16:03 RE: Combinaciones en Select
Previous Message Alvaro Herrera 2009-08-05 14:58:50 Re: Combinaciones en Select