Berechnen der Anzahl diskreter Werte¶
Um die Anzahl der Zeilen zu berechnen, die diskrete Werte haben, können Sie einen der folgenden Ansätze verwenden:
Rufen Sie die SQL-Funktion COUNT mit dem Schlüsselwort
DISTINCT
auf.Wenn Sie nur eine ungefähre Anzahl diskreter Werte benötigen, können Sie die HyperLogLog-Funktionen (z. B.
APPROX_COUNT_DISTINCT
) verwenden. Weitere Details dazu finden Sie unter Schätzen der Anzahl diskreter Werte.Wenn Sie diskrete Werte für hierarchische Aggregationen (z. B. mehrere Gruppierungssätze, Rollups oder Cubes) zählen, können Sie die Verarbeitungsleistung mit einem der beiden folgenden Ansätze verbessern (anstelle von
COUNT(DISTINCT <Ausdruck>)
):Verwenden von Bitmaps zum Ermitteln der Anzahl diskreter Werte.
Bei diesem Ansatz verwenden Sie die Bitmap-Funktionen, um Bitmaps zu erzeugen, die die diskreten Ganzzahlwerte in einer Spalte identifizieren. Da eine Bitmap höchstens 32.768 diskrete Werte darstellen kann, erfordert dieser Ansatz eine „Bucketisierung“ (Verwendung mehrerer Bitmaps), wenn die Anzahl der diskreter Werte 32.768 übersteigt.
Weitere Details dazu finden Sie unter Verwenden von Bitmaps zum Berechnen diskreter Werte für hierarchische Aggregationen.
Erzeugen von Arrays, die die diskreten Werte enthalten.
Bei diesem Ansatz verwenden Sie die Aggregatfunktionen, die Arrays erzeugen, die die diskreten Werte in einer Spalte enthalten. Sie können dann ARRAY_SIZE aufrufen, um die Anzahl der Werte zu erhalten.
Dieser Ansatz funktioniert für Werte eines beliebigen Datentyps (z. B. VARIANT) und erfordert keine „Bucketisierung“, es sei denn, die Größe der Daten in ARRAY übersteigt die maximale Größe eines ARRAY.
Weitere Details dazu finden Sie unter Verwenden von Arrays zum Berechnen diskreter Werte für hierarchische Aggregationen.
Nächste Themen: