Jeg tror, at det bedste, du nemt kan gøre med almindelig SQL, er at køre en forespørgsel som denne for at generere den forespørgsel, du ønsker, og derefter køre den.
select 'select count(distinct '
|| listagg(column_name || ') as ' || column_name, ', count(distinct ') within group (order by column_id)
|| ' from ' || max(table_name) || ';' as script
from all_tab_cols
where table_name = 'MYTABLE';