Re: Combinaciones en Select

From: Xavi <jarabal(at)gmail(dot)com>
To: Foro PostgreSQL <pgsql-es-ayuda(at)postgresql(dot)org>
Subject: Re: Combinaciones en Select
Date: 2009-08-05 11:31:15
Message-ID: 4A796D83.6080901@gmail.com
Views: Raw Message | Whole Thread | Download mbox | Resend email
Thread:
Lists: pgsql-es-ayuda

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
> *-------------------------------------------------------*
>
>
>
>

In response to

Responses

Browse pgsql-es-ayuda by date

  From Date Subject
Next Message Jenaro Centeno Gómez 2009-08-05 12:00:08 Re: Problema Tipo de datos
Previous Message Crispin T. 2009-08-05 03:26:47 Re: comportamiento desconocido de current_time