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.

Diese Website verwendet Cookies. Durch die Nutzung der Website stimmen Sie dem Speichern von Cookies auf Ihrem Computer zu. Außerdem bestätigen Sie, dass Sie unsere Datenschutzbestimmungen gelesen und verstanden haben. Wenn Sie nicht einverstanden sind, verlassen Sie die Website.Weitere Information
dba/oracle12c_approx_count_distinct.txt · Zuletzt geändert: 2015/12/09 18:04 von gpipperr