Syntax
STDDEV_POP([ ALL ] expr) OVER (analytic_clause)
Purpose
You can call this function to return the population standard deviation of the expr expression.
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_POP(SALARY) OVER(ORDER BY HIREDATE) AS DEVISION FROM EMPLOYEES WHERE MANAGER_ID = 100;
+-----------+--------+-------------------+
LAST_NAME SALARY DEVISION
+-----------+--------+-------------------+
RAPHAELY 1700 0
ERRAZURIZ 1400 150
RAPHAELY 1700 141.4213562373095
DE HAAN 11000 4072.161588149468
PARTNERS 14000 5424.610585101939
HARTSTEIN 14000 5787.918451395113
WEISS 13500 5781.109278485914
RUSSELL 13000 5637.250548804798
+-----------+--------+-------------------+
8 rows in set (0.01 sec)