=====Oracle 12c - SQL - Wie viele eindeutige Werte sind in einer Spalte einer Tabelle zu finden?===== **Aufgabe**: Zähle alle eindeutigen Werte in einer Spalte einer Tabelle ====Exakts Auswertung==== **Alle DB Versionen** Mit "count(distinct )" die eindeutigen Werte in einer Tabelle ermitteln. Beipiel an einer kartesischen Abfrage um eine größere Datenmenge zu testen: set timing on select count(distinct a.table_name) from dba_tables a,dba_tables b; COUNT(DISTINCTA.TABLE_NAME) --------------------------- 2444 Abgelaufen: 00:01:16.47 ---- ====Ungefähre Auswertung==== **Ab 12c offiziell, in 11g R2 schon vorhanden** Schätzen mit der "approx_count_distinct()" Funktion: select approx_count_distinct(a.table_name) from dba_tables a,dba_tables b; APPROX_COUNT_DISTINCT(A.TABLE_NAME) ----------------------------------- 2365 Abgelaufen: 00:01:11.37 siehe Dokumentation: https://docs.oracle.com/database/121/SQLRF/functions013.htm#SQLRF56900 Oft reicht es auf sehr großen Tabellen ja auch schon ein ungefähres Ergebnis zu erhalten.