Syntax
STDDEV_SAMP([ ALL ] expr) OVER (analytic_clause)
Purpose
You can call this function to return the sample standard deviation of expr. The result returned by this function is the square root of the result returned by the VAR_SAMP() function.
If no matching row is found, it returns NULL.
Examples
obclient> CREATE TABLE EMPLOYEES (MANAGER_ID INT,LAST_NAME VARCHAR(50),HIREDATE VARCHAR(50),SALARY INT);
INSERT INTO EMPLOYEES VALUES(100, 'RAPHAELY', '2017-07-01', 1700);
INSERT INTO EMPLOYEES VALUES(100, 'DE HAAN', '2018-05-01',11000);
INSERT INTO EMPLOYEES VALUES(100, 'ERRAZURIZ', '2017-07-21', 1400);
INSERT INTO EMPLOYEES VALUES(100, 'HARTSTEIN', '2019-05-01',14000);
INSERT INTO EMPLOYEES VALUES(100, 'RAPHAELY', '2017-07-22', 1700);
INSERT INTO EMPLOYEES VALUES(100, 'WEISS', '2019-07-11',13500);
INSERT INTO EMPLOYEES VALUES(100, 'RUSSELL', '2019-10-05', 13000);
INSERT INTO EMPLOYEES VALUES(100, 'PARTNERS', '2018-12-01',14000);
INSERT INTO EMPLOYEES VALUES(200, 'ROSS', '2019-06-11',13500);
INSERT INTO EMPLOYEES VALUES(200, 'BELL', '2019-05-25', 13000);
INSERT INTO EMPLOYEES VALUES(200, 'PART', '2018-08-11',14000);
COMMIT;
obclient> SELECT LAST_NAME,SALARY,STDDEV_SAMP(SALARY) OVER(ORDER BY HIREDATE) AS DEVISION FROM EMPLOYEES WHERE MANAGER_ID = 100;
+-----------+--------+--------------------+
LAST_NAME SALARY DEVISION
+-----------+--------+--------------------+
RAPHAELY 1700 NULL
ERRAZURIZ 1400 212.13203435596427
RAPHAELY 1700 173.20508075688772
DE HAAN 11000 4702.127178203499
PARTNERS 14000 6064.899009876422
HARTSTEIN 14000 6340.346993658944
WEISS 13500 6244.31169717116
RUSSELL 13000 6026.474330580266
+-----------+--------+--------------------+
8 rows in set (0.01 sec)