我可以计算每列的不同值而不计算它们吗?
假设我的表格包含col1
,col2
,col3
,而且没有其他列。如果没有明确提及这些列,我希望得到与以下结果相同的结果:
SELECT
count(distinct col1) as col1,
count(distinct col2) as col2,
count(distinct col3) as col3
FROM mytable;
我该怎么做?
答案 0 :(得分:2)
我认为使用纯SQL可以轻松完成的最好方法是运行这样的查询来生成所需的查询,然后运行它。
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';