- Kategorien:
Aggregatfunktionen (Allgemein), Fensterfunktionen (Allgemein, Fensterrahmen)
STDDEV_POP¶
Gibt die Populationsstandardabweichung (Quadratwurzel der Varianz) von Nicht-NULL-Werten zurück. Wenn alle Datensätze in einer Gruppe NULL sind, wird NULL zurückgegeben.
Syntax¶
Aggregatfunktion
STDDEV_POP( [ DISTINCT ] expression_1)
Fensterfunktionen
STDDEV_POP( [ DISTINCT ] <expression_1> ) OVER (
[ PARTITION BY <expression_2> ]
[ ORDER BY <expression_3> [ ASC | DESC ] [ <window_frame> ] ]
)
Weitere Informationen zur Syntax von Fensterrahmen
finden Sie unter Syntax und Nutzung von Fensterrahmen.
Argumente¶
Ausdruck_1
Ein Ausdruck, der einen numerischen Wert ergibt. Dies ist der Ausdruck, anhand dessen die Standardabweichung berechnet wird.
Ausdruck_2
Dies ist der optionale Ausdruck, nach dem partitioniert werden soll.
Ausdruck_3
Dies ist der optionale Ausdruck, nach dem in jeder Partition sortiert werden soll.
Rückgabewerte¶
Der Datentyp des zurückgegebenen Werts ist DOUBLE.
Nutzungshinweise¶
Wenn ein VARCHAR-Ausdruck übergeben wird, wandelt diese Funktion die Eingabe implizit in Gleitkommawerte um. Wenn die Umwandlung nicht ausgeführt werden kann, wird ein Fehler zurückgegeben.
Wenn diese Funktion als Fensterfunktion (d. h. mit einer OVER-Klausel) aufgerufen wird:
Wenn die OVER-Klausel eine ORDER BY-Unterklausel enthält, dann gilt Folgendes:
Ein Fensterrahmen ist erforderlich. Wenn kein Fensterrahmen angegeben ist, impliziert das ORDER BY einen kumulativen Fensterrahmen:
RANGE BETWEEN UNBOUNDED PRECEDING AND CURRENT ROW
Weitere Informationen zu Fensterrahmen, einschließlich Syntax und Beispiele, finden Sie unter Syntax und Nutzung von Fensterrahmen.
Weitere Informationen zu impliziten Fensterrahmen finden Sie unter Hinweise zur Nutzung von Fensterrahmen.
Die Verwendung des Schlüsselworts DISTINCT innerhalb der Fensterfunktion ist nicht zulässig und führt zu einem Kompilierfehler.
Beispiele¶
create or replace table aggr(k int, v decimal(10,2), v2 decimal(10, 2));
insert into aggr values(1, 10, null);
insert into aggr values(2, 10, 11), (2, 20, 22), (2, 25,null), (2, 30, 35);
select k, stddev_pop(v), stddev_pop(v2) from aggr group by k;
---+---------------+----------------+
k | stddev_pop(v) | stddev_pop(v2) |
---+---------------+----------------+
1 | 0 | [NULL] |
2 | 7.395099729 | 9.809292645 |
---+---------------+----------------+