Benutzer-Werkzeuge

Webseiten-Werkzeuge


dba:oracle12c_approx_count_distinct

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.

Cookies helfen bei der Bereitstellung von Inhalten. Durch die Nutzung dieser Seiten erklären Sie sich damit einverstanden, dass Cookies auf Ihrem Rechner gespeichert werden. Weitere Information
"Autor: Gunther Pipperr"
dba/oracle12c_approx_count_distinct.txt · Zuletzt geändert: 2015/12/09 18:04 von Gunther Pippèrr