SELECT myColumn, COUNT(*) FROM myTable GROUP BY myColumn HAVING COUNT(*) > 1 如果一个列中的值只出现一次(即具有唯一性),则此查询将返回该列中所有myColumn值以及它们出现的次数。如果一个值出现的次数大于1,则返回该值和它出现的次数。 如果此查询的结果为空,则该列具有唯一值。
一种简单的方法是使用DBMS_STATS分析表。分析后,您可以查看dba_tables...查看num_rows列。然后查看dab_tab_columns。将每个列的num_distinct与行数进行比较。这是一种迂回的方法,可以在不对巨大表上的生产系统产生影响的情况下完成您想要的操作,而无需执行完整的表扫描。如果您想要直接结果,请按照其他人建议的方式针对表运行查询并进行分组。