¿Qué pasa con su consulta existente que no le gusta? Si le preocupa que DISTINCT
en dos columnas no devuelva solo las permutaciones únicas, ¿por qué no intentarlo?
Sin duda funciona como es de esperar en Oracle.
SQL> select distinct deptno, job from emp
2 order by deptno, job
3/
DEPTNO JOB
---------- ---------
10 CLERK
10 MANAGER
10 PRESIDENT
20 ANALYST
20 CLERK
20 MANAGER
30 CLERK
30 MANAGER
30 SALESMAN
9 rows selected.
SQL> select count(*) from (
2 select distinct deptno, job from emp
3 )
4/
COUNT(*)
----------
9
SQL>
edición
Fui un callejón sin salida con la analítica, pero la respuesta fue obvia deprimente ...
SQL> select count(distinct concat(deptno,job)) from emp
2/
COUNT(DISTINCTCONCAT(DEPTNO,JOB))
---------------------------------
9
SQL>
edición 2
Teniendo en cuenta los siguientes datos la solución de concatenación provista arriba contradirá:
col1 col2
---- ----
A AA
AA A
Así que para incluir un separador ...
select col1 + '*' + col2 from t23
/
Obviamente el separador elegido debe ser un carácter o conjunto de caracteres, que nunca pueden aparecer en cualquiera de las columnas.
IordanTanev, Mark Brackett, RC - gracias por las respuestas, fue un buen intento, pero debes comprobar lo que haces antes de publicar en SO. Las consultas que proporcionó no son equivalentes a mi consulta. Puede ver fácilmente que siempre tengo un resultado escalar pero su consulta devuelve varias filas. – Novitzky
Acabo de actualizar la pregunta para incluir su comentario aclaratorio en una de las respuestas – Jeff