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

Responder a