Kategorien:

Aggregatfunktionen (Allgemein), Fensterfunktionen (Allgemein, Fensterrahmen)

STDDEV_SAMP

Gibt die Stichprobenstandardabweichung (Quadratwurzel der Stichprobenvarianz) von Nicht-NULL-Werten zurück. Wenn alle Datensätze in einer Gruppe NULL sind, wird NULL zurückgegeben.

Aliasse:

STDDEV

Syntax

Aggregatfunktion

STDDEV_SAMP( [ DISTINCT ] <expr1> )
Copy

Fensterfunktionen

STDDEV_SAMP( [ DISTINCT ] <expr1> ) OVER (
                                         [ PARTITION BY <expr2> ]
                                         [ ORDER BY <expr3> [ ASC | DESC ] [ <window_frame> ] ]
                                         )
Copy

Weitere Informationen zur Syntax von window_frame finden Sie unter Syntax und Nutzung von Fensterrahmen.

Argumente

expr1

Ein Ausdruck, der einen numerischen Wert ergibt (Ganzzahl, Gleitkommazahl oder Festkommazahl).

expr2

Dies ist der Ausdruck, nach dem partitioniert werden soll.

expr3

Dies ist der Ausdruck, nach dem in jeder Partition sortiert werden soll.

Rückgabewerte

Der Datentyp des zurückgegebenen Werts ist DOUBLE.

Nutzungshinweise

  • Bei Eingaben mit einem Datensatz geben STDDEV_SAMP und STDDEV jeweils NULL zurück. Dies unterscheidet sich vom Oracle-Verhalten: STDDEV_SAMP gibt für einen einzelnen Datensatz NULL und STDDEV gibt 0 zurück.

  • 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.

  • Beim Aufruf als Fensterfunktion:

    • Das Schlüsselwort DISTINCT ist syntaktisch zulässig, wird jedoch ignoriert.

    • Wenn in der OVER-Klausel eine ORDER BY-Unterklausel verwendet wird, muss ein Fensterrahmen verwendet werden. 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.

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);
Copy
select k, stddev_samp(v), stddev_samp(v2) from aggr group by k;

---+----------------+-----------------+
 k | stddev_samp(v) | stddev_samp(v2) |
---+----------------+-----------------+
 1 | [NULL]         | [NULL]          |
 2 | 8.539125634    | 12.013880859    |
---+----------------+-----------------+
Copy