¿Hay una forma simple en Oracle de consultar combinaciones únicas de n campos? Tengo muy simple solución de dos campos:SQL y combinaciones únicas de n-coulmn
CREATE TABLE combinations AS
SELECT 1 AS n
FROM DUAL
UNION ALL
SELECT 2
FROM DUAL;
Consultando combinaciones únicas:
SELECT LEAST(x.a, x.b),
GREATEST(x.a,x.b)
FROM (SELECT c1.n a,
c2.n b
FROM combinations c1
CROSS JOIN combinations c2
WHERE c1.n <> c2.n) x
GROUP BY LEAST(x.a, x.b), GREATEST(x.a,x.b);
De esta consulta 1,2 y 2,1 se consideran la misma. Desafortunadamente no funciona para la estructura de 3 campos (por ejemplo, 1,2,3 debe considerarse igual a 3,1,2 porque el orden de los valores no importa). ¿Las funciones analíticas de Oracle proporcionan una solución adecuada para esta pregunta? ¿Podría sugerir alguna función analítica de Oracle en particular?
¿No solo necesita unirse utilizando '<' en lugar de '<>'? –