Che cos'è della tua query esistente che non ti piace? Se sei preoccupato che lo DISTINCT
attraverso due colonne non restituisca solo le permutazioni uniche perché non provarlo?
Certamente funziona come ci si potrebbe aspettare in 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>
modificare
sono andato in un vicolo cieco con strumenti di analisi, ma la risposta è stata tristemente ovvio ...
SQL> select count(distinct concat(deptno,job)) from emp
2/
COUNT(DISTINCTCONCAT(DEPTNO,JOB))
---------------------------------
9
SQL>
Edit 2
Dato i seguenti dati la soluzione di concatenamento sopra riportata avrà un conteggio errato:
col1 col2
---- ----
A AA
AA A
Così abbiamo per includere un separatore ...
select col1 + '*' + col2 from t23
/
Ovviamente il separatore scelto deve essere un personaggio, o un insieme di caratteri, che non può mai apparire in due colonne.
IordanTanev, Mark Brackett, RC - grazie per le risposte, è stato un bel tentativo, ma è necessario verificare cosa si sta facendo prima di postare in SO. Le query che hai fornito non sono equivalenti alla mia query. Puoi facilmente vedere che ho sempre un risultato scalare ma la tua query restituisce più righe. – Novitzky
Appena aggiornata la domanda per includere il tuo commento chiarificatore da una delle risposte – Jeff