Aggregatfunktionen
Beispiele
Erzeugt eine einzelne Zeile mit der Summe der Spalte amount:
SELECT sum(amount)FROM sales;Erzeugt eine Zeile pro eindeutiger Region mit der Summe von amount für jede Gruppe:
SELECT region, sum(amount)FROM salesGROUP BY region;Liefert nur die Regionen, deren Summe von amount größer als 100 ist:
SELECT regionFROM salesGROUP BY regionHAVING sum(amount) > 100;Liefert die Anzahl eindeutiger Werte in der Spalte region:
SELECT count(DISTINCT region)FROM sales;Liefert zwei Werte, die Gesamtsumme von amount und die Summe von amount ohne Spalten, deren Region north ist, mithilfe der Klausel FILTER:
SELECT sum(amount), sum(amount) FILTER (region != 'north')FROM sales;Liefert eine Liste aller Regionen in der Reihenfolge der Spalte amount:
SELECT list(region ORDER BY amount DESC)FROM sales;Liefert den Betrag des ersten Verkaufs mithilfe der Aggregatfunktion first():
SELECT first(amount ORDER BY date ASC)FROM sales;Syntax
Aggregate sind Funktionen, die mehrere Zeilen zu einem einzelnen Wert zusammenfassen. Aggregate unterscheiden sich von skalaren Funktionen und Fensterfunktionen, weil sie die Kardinalität des Ergebnisses ändern. Deshalb können Aggregate nur in den Klauseln SELECT und HAVING einer SQL-Abfrage verwendet werden.
Klausel DISTINCT in Aggregatfunktionen
Wenn die Klausel DISTINCT angegeben wird, werden bei der Berechnung des Aggregats nur eindeutige Werte berücksichtigt. Das wird typischerweise zusammen mit dem Aggregat count verwendet, um die Anzahl eindeutiger Elemente zu erhalten; es kann aber mit jeder Aggregatfunktion im System kombiniert werden.
Einige Aggregate sind unempfindlich gegenüber doppelten Werten (z. B. min und max); bei ihnen wird diese Klausel geparst und ignoriert.
Klausel ORDER BY in Aggregatfunktionen
Nach dem letzten Argument des Funktionsaufrufs kann eine Klausel ORDER BY angegeben werden. Beachten Sie das fehlende Komma vor der Klausel.
SELECT ⟨aggregate_function⟩(⟨arg⟩, ⟨sep⟩ ORDER BY ⟨ordering_criteria⟩);Diese Klausel stellt sicher, dass die zu aggregierenden Werte vor der Anwendung der Funktion sortiert werden.
Die meisten Aggregatfunktionen sind unabhängig von der Reihenfolge; bei ihnen wird diese Klausel geparst und verworfen.
Es gibt jedoch einige reihenfolgeempfindliche Aggregate, die ohne Sortierung nicht-deterministische Ergebnisse haben können, z. B. first, last, list und string_agg / group_concat / listagg.
Diese können durch Sortieren der Argumente deterministisch gemacht werden.
Zum Beispiel:
CREATE TABLE tbl AS SELECT s FROM range(1, 4) r(s);
SELECT string_agg(s, ', ' ORDER BY s DESC) AS countdownFROM tbl;| countdown |
|---|
| 3, 2, 1 |
Umgang mit NULL-Werten
Alle allgemeinen Aggregatfunktionen ignorieren NULLs, außer list (array_agg), first (arbitrary) und last.
Um NULLs aus list auszuschließen, können Sie eine Klausel FILTER verwenden.
Um NULLs bei first zu ignorieren, können Sie das Aggregat any_value verwenden.
Alle allgemeinen Aggregatfunktionen außer count liefern bei leeren Gruppen NULL.
Insbesondere liefert list in diesem Fall keine leere Liste, sum keine Null und string_agg keine leere Zeichenkette.
Allgemeine Aggregatfunktionen
Die folgende Tabelle zeigt die verfügbaren allgemeinen Aggregatfunktionen.
| Funktion | Beschreibung |
|---|---|
any_value(arg) |
Liefert den ersten Nicht-Null-Wert aus arg. Diese Funktion ist von der Sortierung betroffen. |
arg_max(arg, val) |
Findet die Zeile mit dem maximalen val und berechnet den Ausdruck arg in dieser Zeile. Zeilen, in denen der Wert des Ausdrucks arg oder val NULL ist, werden ignoriert. Diese Funktion ist von der Sortierung betroffen. |
arg_max(arg, val, n) |
Der verallgemeinerte Fall von arg_max für n Werte: liefert eine LIST mit den arg-Ausdrücken der ersten n Zeilen, sortiert nach val absteigend. Diese Funktion ist von der Sortierung betroffen. |
arg_max_null(arg, val) |
Findet die Zeile mit dem maximalen val und berechnet den Ausdruck arg in dieser Zeile. Zeilen, in denen der Ausdruck val zu NULL auswertet, werden ignoriert. Diese Funktion ist von der Sortierung betroffen. |
arg_min(arg, val) |
Findet die Zeile mit dem minimalen val und berechnet den Ausdruck arg in dieser Zeile. Zeilen, in denen der Wert des Ausdrucks arg oder val NULL ist, werden ignoriert. Diese Funktion ist von der Sortierung betroffen. |
arg_min(arg, val, n) |
Liefert eine LIST mit den arg-Ausdrücken der „untersten“ n Zeilen, sortiert nach val aufsteigend. Diese Funktion ist von der Sortierung betroffen. |
arg_min_null(arg, val) |
Findet die Zeile mit dem minimalen val und berechnet den Ausdruck arg in dieser Zeile. Zeilen, in denen der Ausdruck val zu NULL auswertet, werden ignoriert. Diese Funktion ist von der Sortierung betroffen. |
avg(arg) |
Berechnet den Durchschnitt aller Nicht-Null-Werte in arg. Diese Funktion ist von der Sortierung betroffen. |
bit_and(arg) |
Liefert das bitweise AND aller Bits in einem gegebenen Ausdruck. |
bit_or(arg) |
Liefert das bitweise OR aller Bits in einem gegebenen Ausdruck. |
bit_xor(arg) |
Liefert das bitweise XOR aller Bits in einem gegebenen Ausdruck. |
bitstring_agg(arg) |
Liefert einen Bitstring, dessen Länge dem Bereich der Nicht-Null-(Ganzzahl-)Werte entspricht, mit gesetzten Bits an der Position jedes (eindeutigen) Werts. |
bool_and(arg) |
Liefert true, wenn jeder Eingabewert true ist, sonst false. |
bool_or(arg) |
Liefert true, wenn irgendein Eingabewert true ist, sonst false. |
count() |
Liefert die Anzahl der Zeilen. |
count(arg) |
Liefert die Anzahl der Zeilen, in denen arg nicht NULL ist. |
countif(arg) |
Liefert die Anzahl der Zeilen, in denen arg true ist. |
favg(arg) |
Berechnet den Durchschnitt mit einer genaueren Gleitkommasummierung (Kahan-Summe). Diese Funktion ist von der Sortierung betroffen. |
first(arg) |
Liefert den ersten Wert (null oder nicht-null) aus arg. Diese Funktion ist von der Sortierung betroffen. |
fsum(arg) |
Berechnet die Summe mit einer genaueren Gleitkommasummierung (Kahan-Summe). Diese Funktion ist von der Sortierung betroffen. |
geometric_mean(arg) |
Berechnet das geometrische Mittel aller Nicht-Null-Werte in arg. Diese Funktion ist von der Sortierung betroffen. |
histogram(arg) |
Liefert eine MAP von Schlüssel-Wert-Paaren, die Buckets und Anzahlen darstellen. |
histogram(arg, boundaries) |
Liefert eine MAP von Schlüssel-Wert-Paaren, die die angegebenen oberen boundaries und die Anzahlen der Elemente in den entsprechenden Bins (links offen und rechts geschlossen) des Datentyps darstellen. Eine Grenze am größten Wert des Datentyps wird automatisch hinzugefügt, wenn Elemente größer als alle angegebenen boundaries auftreten, siehe is_histogram_other_bin. Grenzen können z. B. über equi_width_bins angegeben werden. |
histogram_exact(arg, elements) |
Liefert eine MAP von Schlüssel-Wert-Paaren, die die angeforderten Elemente und ihre Anzahlen darstellen. Ein datentypspezifisches Catch-all-Element wird automatisch hinzugefügt, um andere Elemente zu zählen, wenn sie auftreten, siehe is_histogram_other_bin. |
histogram_values(source, boundaries) |
Liefert die oberen Grenzen der Bins und ihre Anzahlen. |
last(arg) |
Liefert den letzten Wert einer Spalte. Diese Funktion ist von der Sortierung betroffen. |
list(arg) |
Liefert eine LIST mit allen Werten einer Spalte. Diese Funktion ist von der Sortierung betroffen. |
max(arg) |
Liefert den in arg vorhandenen Maximalwert. Diese Funktion ist unabhängig von der Eindeutigkeit. |
max(arg, n) |
Liefert eine LIST mit den arg-Werten der „obersten“ n Zeilen, sortiert nach arg absteigend. |
min(arg) |
Liefert den in arg vorhandenen Minimalwert. Diese Funktion ist unabhängig von der Eindeutigkeit. |
min(arg, n) |
Liefert eine LIST mit den arg-Werten der „untersten“ n Zeilen, sortiert nach arg aufsteigend. |
product(arg) |
Berechnet das Produkt aller Nicht-Null-Werte in arg. Diese Funktion ist von der Sortierung betroffen. |
string_agg(arg) |
Verkettet die Zeichenkettenwerte der Spalte mit einem Kommatrennzeichen (,). Diese Funktion ist von der Sortierung betroffen. |
string_agg(arg, sep) |
Verkettet die Zeichenkettenwerte der Spalte mit einem Trennzeichen. Diese Funktion ist von der Sortierung betroffen. |
sum(arg) |
Berechnet die Summe aller Nicht-Null-Werte in arg / zählt true-Werte, wenn arg boolesch ist. Die Gleitkommavarianten dieser Funktion sind von der Sortierung betroffen. |
weighted_avg(arg, weight) |
Berechnet den gewichteten Durchschnitt aller Nicht-Null-Werte in arg, wobei jeder Wert mit dem zugehörigen weight skaliert wird. Ist weight NULL, wird der entsprechende arg-Wert übersprungen. Diese Funktion ist von der Sortierung betroffen. |
any_value(arg)
| Beschreibung | Liefert den ersten Nicht-NULL-Wert aus arg. Diese Funktion ist von der Sortierung betroffen. |
| Beispiel | any_value(A) |
arg_max(arg, val)
| Beschreibung | Findet die Zeile mit dem maximalen val und berechnet den Ausdruck arg in dieser Zeile. Zeilen, in denen der Wert des Ausdrucks arg oder val NULL ist, werden ignoriert. Diese Funktion ist von der Sortierung betroffen. |
| Beispiel | arg_max(A, B) |
| Alias(e) | argmax(arg, val), max_by(arg, val) |
arg_max(arg, val, n)
| Beschreibung | Der verallgemeinerte Fall von arg_max für n Werte: liefert eine LIST mit den arg-Ausdrücken der ersten n Zeilen, sortiert nach val absteigend. Diese Funktion ist von der Sortierung betroffen. |
| Beispiel | arg_max(A, B, 2) |
| Alias(e) | argmax(arg, val, n), max_by(arg, val, n) |
arg_max_null(arg, val)
| Beschreibung | Findet die Zeile mit dem maximalen val und berechnet den Ausdruck arg in dieser Zeile. Zeilen, in denen der Ausdruck val zu NULL auswertet, werden ignoriert. Diese Funktion ist von der Sortierung betroffen. |
| Beispiel | arg_max_null(A, B) |
arg_min(arg, val)
| Beschreibung | Findet die Zeile mit dem minimalen val und berechnet den Ausdruck arg in dieser Zeile. Zeilen, in denen der Wert des Ausdrucks arg oder val NULL ist, werden ignoriert. Diese Funktion ist von der Sortierung betroffen. |
| Beispiel | arg_min(A, B) |
| Alias(e) | argmin(arg, val), min_by(arg, val) |
arg_min(arg, val, n)
| Beschreibung | Der verallgemeinerte Fall von arg_min für n Werte: liefert eine LIST mit den arg-Ausdrücken der untersten n Zeilen, sortiert nach val aufsteigend. Diese Funktion ist von der Sortierung betroffen. |
| Beispiel | arg_min(A, B, 2) |
| Alias(e) | argmin(arg, val, n), min_by(arg, val, n) |
arg_min_null(arg, val)
| Beschreibung | Findet die Zeile mit dem minimalen val und berechnet den Ausdruck arg in dieser Zeile. Zeilen, in denen der Ausdruck val zu NULL auswertet, werden ignoriert. Diese Funktion ist von der Sortierung betroffen. |
| Beispiel | arg_min_null(A, B) |
avg(arg)
| Beschreibung | Berechnet den Durchschnitt aller Nicht-Null-Werte in arg. Diese Funktion ist von der Sortierung betroffen. |
| Beispiel | avg(A) |
| Alias(e) | mean |
bit_and(arg)
| Beschreibung | Liefert das bitweise AND aller Bits in einem gegebenen Ausdruck. |
| Beispiel | bit_and(A) |
bit_or(arg)
| Beschreibung | Liefert das bitweise OR aller Bits in einem gegebenen Ausdruck. |
| Beispiel | bit_or(A) |
bit_xor(arg)
| Beschreibung | Liefert das bitweise XOR aller Bits in einem gegebenen Ausdruck. |
| Beispiel | bit_xor(A) |
bitstring_agg(arg)
| Beschreibung | Liefert einen Bitstring, dessen Länge dem Bereich der Nicht-Null-(Ganzzahl-)Werte entspricht, mit gesetzten Bits an der Position jedes (eindeutigen) Werts. |
| Beispiel | bitstring_agg(A) |
bool_and(arg)
| Beschreibung | Liefert true, wenn jeder Eingabewert true ist, sonst false. |
| Beispiel | bool_and(A) |
bool_or(arg)
| Beschreibung | Liefert true, wenn irgendein Eingabewert true ist, sonst false. |
| Beispiel | bool_or(A) |
count()
| Beschreibung | Liefert die Anzahl der Zeilen. |
| Beispiel | count() |
| Alias(e) | count(*) |
count(arg)
| Beschreibung | Liefert die Anzahl der Zeilen, in denen arg nicht NULL ist. |
| Beispiel | count(A) |
countif(arg)
| Beschreibung | Liefert die Anzahl der Zeilen, in denen arg true ist. |
| Beispiel | countif(A) |
favg(arg)
| Beschreibung | Berechnet den Durchschnitt mit einer genaueren Gleitkommasummierung (Kahan-Summe). Diese Funktion ist von der Sortierung betroffen. |
| Beispiel | favg(A) |
first(arg)
| Beschreibung | Liefert den ersten Wert (null oder nicht-null) aus arg. Diese Funktion ist von der Sortierung betroffen. |
| Beispiel | first(A) |
| Alias(e) | arbitrary(A) |
fsum(arg)
| Beschreibung | Berechnet die Summe mit einer genaueren Gleitkommasummierung (Kahan-Summe). Diese Funktion ist von der Sortierung betroffen. |
| Beispiel | fsum(A) |
| Alias(e) | sumkahan, kahan_sum |
geometric_mean(arg)
| Beschreibung | Berechnet das geometrische Mittel aller Nicht-Null-Werte in arg. Diese Funktion ist von der Sortierung betroffen. |
| Beispiel | geometric_mean(A) |
| Alias(e) | geomean(A) |
histogram(arg)
| Beschreibung | Liefert eine MAP von Schlüssel-Wert-Paaren, die Buckets und Anzahlen darstellen. |
| Beispiel | histogram(A) |
histogram(arg, boundaries)
| Beschreibung | Liefert eine MAP von Schlüssel-Wert-Paaren, die die angegebenen oberen boundaries und die Anzahlen der Elemente in den entsprechenden Bins (links offen und rechts geschlossen) des Datentyps darstellen. Eine Grenze am größten Wert des Datentyps wird automatisch hinzugefügt, wenn Elemente größer als alle angegebenen boundaries auftreten, siehe is_histogram_other_bin. Grenzen können z. B. über equi_width_bins angegeben werden. |
| Beispiel | histogram(A, [0, 1, 10]) |
histogram_exact(arg, elements)
| Beschreibung | Liefert eine MAP von Schlüssel-Wert-Paaren, die die angeforderten Elemente und ihre Anzahlen darstellen. Ein datentypspezifisches Catch-all-Element wird automatisch hinzugefügt, um andere Elemente zu zählen, wenn sie auftreten, siehe is_histogram_other_bin. |
| Beispiel | histogram_exact(A, ['a', 'b', 'c']) |
histogram_values(source, col_name, technique, bin_count)
| Beschreibung | Liefert die oberen Grenzen der Bins und ihre Anzahlen. |
| Beispiel | histogram_values(integers, i, bin_count := 2) |
last(arg)
| Beschreibung | Liefert den letzten Wert einer Spalte. Diese Funktion ist von der Sortierung betroffen. |
| Beispiel | last(A) |
list(arg)
| Beschreibung | Liefert eine LIST mit allen Werten einer Spalte. Diese Funktion ist von der Sortierung betroffen. |
| Beispiel | list(A) |
| Alias(e) | array_agg |
max(arg)
| Beschreibung | Liefert den in arg vorhandenen Maximalwert. Diese Funktion ist unabhängig von der Eindeutigkeit. |
| Beispiel | max(A) |
max(arg, n)
| Beschreibung | Liefert eine LIST mit den arg-Werten der „obersten“ n Zeilen, sortiert nach arg absteigend. |
| Beispiel | max(A, 2) |
min(arg)
| Beschreibung | Liefert den in arg vorhandenen Minimalwert. Diese Funktion ist unabhängig von der Eindeutigkeit. |
| Beispiel | min(A) |
min(arg, n)
| Beschreibung | Liefert eine LIST mit den arg-Werten der „untersten“ n Zeilen, sortiert nach arg aufsteigend. |
| Beispiel | min(A, 2) |
product(arg)
| Beschreibung | Berechnet das Produkt aller Nicht-Null-Werte in arg. Diese Funktion ist von der Sortierung betroffen. |
| Beispiel | product(A) |
string_agg(arg)
| Beschreibung | Verkettet die Zeichenkettenwerte der Spalte mit einem Kommatrennzeichen (,). Diese Funktion ist von der Sortierung betroffen. |
| Beispiel | string_agg(S, ',') |
| Alias(e) | group_concat(arg), listagg(arg) |
string_agg(arg, sep)
| Beschreibung | Verkettet die Zeichenkettenwerte der Spalte mit einem Trennzeichen. Diese Funktion ist von der Sortierung betroffen. |
| Beispiel | string_agg(S, ',') |
| Alias(e) | group_concat(arg, sep), listagg(arg, sep) |
sum(arg)
| Beschreibung | Berechnet die Summe aller Nicht-Null-Werte in arg / zählt true-Werte, wenn arg boolesch ist. Die Gleitkommavarianten dieser Funktion sind von der Sortierung betroffen. |
| Beispiel | sum(A) |
weighted_avg(arg, weight)
| Beschreibung | Berechnet den gewichteten Durchschnitt aller Nicht-Null-Werte in arg, wobei jeder Wert mit dem zugehörigen weight skaliert wird. Ist weight NULL, wird der Wert übersprungen. Diese Funktion ist von der Sortierung betroffen. |
| Beispiel | weighted_avg(A, W) |
| Alias(e) | wavg(arg, weight) |
Approximative Aggregate
Die folgende Tabelle zeigt die verfügbaren approximativen Aggregatfunktionen.
| Funktion | Beschreibung | Beispiel |
|---|---|---|
approx_count_distinct(x) |
Berechnet die ungefähre Anzahl eindeutiger Elemente mit HyperLogLog. | approx_count_distinct(A) |
approx_quantile(x, pos) |
Berechnet das ungefähre Quantil mit T-Digest. | approx_quantile(A, 0.5) |
approx_top_k(arg, k) |
Berechnet eine LIST der k ungefähr häufigsten Werte von arg mit Filtered Space-Saving. |
|
reservoir_quantile(x, quantile, sample_size = 8192) |
Berechnet das ungefähre Quantil mit Reservoir Sampling; die Stichprobengröße ist optional und verwendet 8192 als Standardgröße. | reservoir_quantile(A, 0.5, 1024) |
Statistische Aggregate
Die folgende Tabelle zeigt die verfügbaren statistischen Aggregatfunktionen.
Sie ignorieren alle NULL-Werte (bei einer einzelnen Eingabespalte x) bzw. Paare, bei denen eine der Eingaben NULL ist (bei zwei Eingabespalten y und x).
| Funktion | Beschreibung |
|---|---|
corr(y, x) |
Der Korrelationskoeffizient. |
covar_pop(y, x) |
Die Populationskovarianz, ohne Bias-Korrektur. |
covar_samp(y, x) |
Die Stichprobenkovarianz, einschließlich Bessels Bias-Korrektur. |
entropy(x) |
Die Log-2-Entropie der gezählten Eingabewerte. |
kurtosis_pop(x) |
Die Überschusskurtosis (Fishers Definition) ohne Bias-Korrektur. |
kurtosis(x) |
Die Überschusskurtosis (Fishers Definition) mit Bias-Korrektur gemäß der Stichprobengröße. |
mad(x) |
Die mediane absolute Abweichung. Temporale Typen liefern ein positives INTERVAL. |
median(x) |
Der mittlere Wert der Menge. Bei gerader Anzahl werden quantitative Werte gemittelt, ordinale Werte liefern den niedrigeren Wert. |
mode(x) |
Der häufigste Wert. Diese Funktion ist von der Sortierung betroffen. |
quantile_cont(x, pos) |
Das interpolierte pos-Quantil von x für -1 <= pos <= 1. Liefert den pos * (n_nonnull_values - 1)-ten (nullindizierten, in der angegebenen Reihenfolge) Wert von x oder eine Interpolation zwischen den benachbarten Werten, wenn der Index keine Ganzzahl ist. Werte von pos zwischen -1 und 0 entsprechen dem Rückwärtszählen von 1. Genauer: quantile_cont(x, -y) = quantile_cont(x, 1 - y). Anschaulich werden die Werte von x als gleichabständige Punkte auf einer Linie angeordnet, beginnend bei 0 und endend bei 1, und der (interpolierte) Wert bei pos zurückgegeben. Das ist Typ 7 in Hyndman & Fan (1996). Ist pos eine LIST von FLOATs, ist das Ergebnis eine LIST der entsprechenden interpolierten Quantile. |
quantile(x, pos) |
Alias für quantile_disc. |
quantile_disc(x, pos) |
Das diskrete pos-Quantil von x für 0 <= pos <= 1. Liefert den greatest(ceil(pos * n_nonnull_values) - 1, 0)-ten (nullindizierten, in der angegebenen Reihenfolge) Wert von x. Anschaulich wird jedem Wert von x ein gleich großes Teilintervall (links offen und rechts geschlossen außer dem ersten Intervall) des Intervalls [0, 1] zugewiesen, und der Wert des Teilintervalls gewählt, das pos enthält. Das ist Typ 1 in Hyndman & Fan (1996). Ist pos eine LIST von FLOATs, ist das Ergebnis eine LIST der entsprechenden diskreten Quantile. |
regr_avgx(y, x) |
Der Durchschnitt der unabhängigen Variable für Nicht-NULL-Paare, wobei x die unabhängige und y die abhängige Variable ist. |
regr_avgy(y, x) |
Der Durchschnitt der abhängigen Variable für Nicht-NULL-Paare, wobei x die unabhängige und y die abhängige Variable ist. |
regr_count(y, x) |
Die Anzahl der Nicht-NULL-Paare. |
regr_intercept(y, x) |
Der Achsenabschnitt der univariaten linearen Regressionsgerade, wobei x die unabhängige und y die abhängige Variable ist. |
regr_r2(y, x) |
Das Quadrat des Pearson-Korrelationskoeffizienten zwischen y und x. Auch: Das Bestimmtheitsmaß in einer linearen Regression, wobei x die unabhängige und y die abhängige Variable ist. |
regr_slope(y, x) |
Die Steigung der linearen Regressionsgerade, wobei x die unabhängige und y die abhängige Variable ist. |
regr_sxx(y, x) |
Die Stichprobenvarianz, einschließlich Bessels Bias-Korrektur, der unabhängigen Variable für Nicht-NULL-Paare, wobei x die unabhängige und y die abhängige Variable ist. |
regr_sxy(y, x) |
Die Stichprobenkovarianz, einschließlich Bessels Bias-Korrektur. |
regr_syy(y, x) |
Die Stichprobenvarianz, einschließlich Bessels Bias-Korrektur, der abhängigen Variable für Nicht-NULL-Paare, wobei x die unabhängige und y die abhängige Variable ist. |
skewness(x) |
Die Schiefe. |
sem(x) |
Der Standardfehler des Mittelwerts. |
stddev_pop(x) |
Die Populationsstandardabweichung. |
stddev_samp(x) |
Die Stichprobenstandardabweichung. |
var_pop(x) |
Die Populationsvarianz, ohne Bias-Korrektur. |
var_samp(x) |
Die Stichprobenvarianz, einschließlich Bessels Bias-Korrektur. |
corr(y, x)
| Beschreibung | Der Korrelationskoeffizient. |
| Formel | covar_pop(y, x) / (stddev_pop(x) * stddev_pop(y)) |
covar_pop(y, x)
| Beschreibung | Die Populationskovarianz, ohne Bias-Korrektur. |
| Formel | (sum(x*y) - sum(x) * sum(y) / regr_count(y, x)) / regr_count(y, x), covar_samp(y, x) * (1 - 1 / regr_count(y, x)) |
covar_samp(y, x)
| Beschreibung | Die Stichprobenkovarianz, einschließlich Bessels Bias-Korrektur. |
| Formel | (sum(x*y) - sum(x) * sum(y) / regr_count(y, x)) / (regr_count(y, x) - 1), covar_pop(y, x) / (1 - 1 / regr_count(y, x)) |
| Alias(e) | regr_sxy(y, x) |
entropy(x)
| Beschreibung | Die Log-2-Entropie der gezählten Eingabewerte. | | Formel | - |
kurtosis_pop(x)
| Beschreibung | Die Überschusskurtosis (Fishers Definition) ohne Bias-Korrektur. | | Formel | - |
kurtosis(x)
| Beschreibung | Die Überschusskurtosis (Fishers Definition) mit Bias-Korrektur gemäß der Stichprobengröße. | | Formel | - |
mad(x)
| Beschreibung | Die mediane absolute Abweichung. Temporale Typen liefern ein positives INTERVAL. |
| Formel | median(abs(x - median(x))) |
median(x)
| Beschreibung | Der mittlere Wert der Menge. Bei gerader Anzahl werden quantitative Werte gemittelt, ordinale Werte liefern den niedrigeren Wert. |
| Formel | quantile_cont(x, 0.5) |
mode(x)
| Beschreibung | Der häufigste Wert. Diese Funktion ist von der Sortierung betroffen. | | Formel | - |
quantile_cont(x, pos)
| Beschreibung | Das interpolierte pos-Quantil von x für 0 <= pos <= 1. Liefert den pos * (n_nonnull_values - 1)-ten (nullindizierten, in der angegebenen Reihenfolge) Wert von x oder eine Interpolation zwischen den benachbarten Werten, wenn der Index keine Ganzzahl ist. Anschaulich werden die Werte von x als gleichabständige Punkte auf einer Linie angeordnet, beginnend bei 0 und endend bei 1, und der (interpolierte) Wert bei pos zurückgegeben. Das ist Typ 7 in Hyndman & Fan (1996). Ist pos eine LIST von FLOATs, ist das Ergebnis eine LIST der entsprechenden interpolierten Quantile. |
| Formel | - |
quantile(x, pos)
| Beschreibung | Alias für quantile_disc. |
quantile_disc(x, pos)
| Beschreibung | Das diskrete pos-Quantil von x für 0 <= pos <= 1. Liefert den greatest(ceil(pos * n_nonnull_values) - 1, 0)-ten (nullindizierten, in der angegebenen Reihenfolge) Wert von x. Anschaulich wird jedem Wert von x ein gleich großes Teilintervall (links offen und rechts geschlossen außer dem ersten Intervall) des Intervalls [0, 1] zugewiesen, und der Wert des Teilintervalls gewählt, das pos enthält. Das ist Typ 1 in Hyndman & Fan (1996). Ist pos eine LIST von FLOATs, ist das Ergebnis eine LIST der entsprechenden diskreten Quantile. |
| Formel | - |
| Alias(e) | quantile |
regr_avgx(y, x)
| Beschreibung | Der Durchschnitt der unabhängigen Variable für Nicht-NULL-Paare, wobei x die unabhängige und y die abhängige Variable ist. |
| Formel | - |
regr_avgy(y, x)
| Beschreibung | Der Durchschnitt der abhängigen Variable für Nicht-NULL-Paare, wobei x die unabhängige und y die abhängige Variable ist. |
| Formel | - |
regr_count(y, x)
| Beschreibung | Die Anzahl der Nicht-NULL-Paare. |
| Formel | - |
regr_intercept(y, x)
| Beschreibung | Der Achsenabschnitt der univariaten linearen Regressionsgerade, wobei x die unabhängige und y die abhängige Variable ist. |
| Formel | regr_avgy(y, x) - regr_slope(y, x) * regr_avgx(y, x) |
regr_r2(y, x)
| Beschreibung | Das Quadrat des Pearson-Korrelationskoeffizienten zwischen y und x. Auch: Das Bestimmtheitsmaß in einer linearen Regression, wobei x die unabhängige und y die abhängige Variable ist. | | Formel | - |
regr_slope(y, x)
| Beschreibung | Liefert die Steigung der linearen Regressionsgerade, wobei x die unabhängige und y die abhängige Variable ist. |
| Formel | regr_sxy(y, x) / regr_sxx(y, x) |
| Alias(e) | - |
regr_sxx(y, x)
| Beschreibung | Die Stichprobenvarianz, einschließlich Bessels Bias-Korrektur, der unabhängigen Variable für Nicht-NULL-Paare, wobei x die unabhängige und y die abhängige Variable ist. |
| Formel | - |
regr_sxy(y, x)
| Beschreibung | Die Stichprobenkovarianz, einschließlich Bessels Bias-Korrektur. |
| Formel | (sum(x*y) - sum(x) * sum(y) / regr_count(y, x)) / (regr_count(y, x) - 1), covar_pop(y, x) / (1 - 1 / regr_count(y, x)) |
| Alias(e) | covar_samp(y, x) |
regr_syy(y, x)
| Beschreibung | Die Stichprobenvarianz, einschließlich Bessels Bias-Korrektur, der abhängigen Variable für Nicht-NULL-Paare, wobei x die unabhängige und y die abhängige Variable ist. |
| Formel | - |
sem(x)
| Beschreibung | Der Standardfehler des Mittelwerts. | | Formel | - |
skewness(x)
| Beschreibung | Die Schiefe. | | Formel | - |
stddev_pop(x)
| Beschreibung | Die Populationsstandardabweichung. |
| Formel | sqrt(var_pop(x)) |
stddev_samp(x)
| Beschreibung | Die Stichprobenstandardabweichung. |
| Formel | sqrt(var_samp(x))|
| Alias(e) | stddev(x)|
var_pop(x)
| Beschreibung | Die Populationsvarianz, ohne Bias-Korrektur. |
| Formel | (sum(x^2) - sum(x)^2 / count(x)) / count(x), var_samp(y, x) * (1 - 1 / count(x)) |
var_samp(x)
| Beschreibung | Die Stichprobenvarianz, einschließlich Bessels Bias-Korrektur. |
| Formel | (sum(x^2) - sum(x)^2 / count(x)) / (count(x) - 1), var_pop(y, x) / (1 - 1 / count(x)) |
| Alias(e) | variance(arg, val) |
Ordered-Set-Aggregatfunktionen
Die folgende Tabelle zeigt die verfügbaren „Ordered-Set“-Aggregatfunktionen.
Diese Funktionen werden mit der Syntax WITHIN GROUP (ORDER BY sort_expression) angegeben
und in eine gleichwertige Aggregatfunktion umgewandelt, die den Sortierausdruck
als erstes Argument entgegennimmt.
| Funktion | Äquivalent |
|---|---|
mode() WITHIN GROUP (ORDER BY column [(ASC|DESC)]) |
mode(column ORDER BY column [(ASC|DESC)]) |
percentile_cont(fraction) WITHIN GROUP (ORDER BY column [(ASC|DESC)]) |
quantile_cont(column, fraction ORDER BY column [(ASC|DESC)]) |
percentile_cont(fractions) WITHIN GROUP (ORDER BY column [(ASC|DESC)]) |
quantile_cont(column, fractions ORDER BY column [(ASC|DESC)]) |
percentile_disc(fraction) WITHIN GROUP (ORDER BY column [(ASC|DESC)]) |
quantile_disc(column, fraction ORDER BY column [(ASC|DESC)]) |
percentile_disc(fractions) WITHIN GROUP (ORDER BY column [(ASC|DESC)]) |
quantile_disc(column, fractions ORDER BY column [(ASC|DESC)]) |
Sonstige Aggregatfunktionen
| Funktion | Beschreibung | Alias |
|---|---|---|
grouping() |
Bei Abfragen mit GROUP BY und entweder ROLLUP oder GROUPING SETS: Liefert eine Ganzzahl, die angibt, welche der Argumentausdrücke zum Gruppieren verwendet wurden, um die aktuelle Superaggregatzeile zu erzeugen. |
grouping_id() |