dba:oracle12c_approx_count_distinct
Inhaltsverzeichnis
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 <spalte>)“ 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(<spalte>)“ 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.
dba/oracle12c_approx_count_distinct.txt · Zuletzt geändert: 2015/12/09 18:04 von gpipperr