分析函數-STDDEV,STDDEV_SAMP ,STDDEV_POP,VAR_POP,VAR_SAMP,VARIANCE

/*STDDEV:計算當前行關於組的標準偏離

STDDEV_SAMP : 該函數計算累積樣本標準偏離,並返回總體變量的平方根

STDDEV與 stddev_samp 的不同之處在於,當計算的輸入數據只有一行時,stddev 返回 0,而
stddev_samp 返回 null*/

計算公式:





select stddev(salary) FROM hr.employees
WHERE department_id =20;--結果爲4949.74746830583

--STDDEV,STDDEV_SAMP
SELECT SQRT(SUM( POWER((SALARY - (SELECT AVG(SALARY) FROM hr.employees
WHERE department_id =20)), 2)
/((SELECT COUNT(1) FROM hr.employees
WHERE department_id =20)-1 )))
FROM hr.employees
WHERE department_id =20;--結果爲4949.74746830583




---STDDEV_POP標準方差

--計算公式




select STDDEV_POP(salary) FROM hr.employees
WHERE department_id =20;--結果爲3500

SELECT SQRT(SUM( POWER((SALARY - (SELECT AVG(SALARY) FROM hr.employees
WHERE department_id =20)), 2)
/((SELECT COUNT(1) FROM hr.employees
WHERE department_id =20))))
FROM hr.employees
WHERE department_id =20;--結果爲3500


/*VAR_POP
功能描述:(Variance Population)該函數返回非空集合的總體變量(忽略 null),VAR_POP
進行如下計算:
(SUM(expr2) - SUM(expr)2 / COUNT(expr)) / COUNT(expr)*/
select var_pop(salary) FROM hr.employees
WHERE department_id =20----結果爲12250000

select count(1)/*COUNT(expr)*/ FROM hr.employees WHERE department_id =20;

select (sum(power(salary,2)) - power(sum(salary),2)/2)/2
FROM hr.employees WHERE department_id =20;----結果爲12250000


/*VAR_SAMP
功能描述:(Variance Sample)該函數返回非空集合的樣本變量(忽略 null),VAR_SAMP 進
行如下計算:
(SUM(expr*expr)-SUM(expr)*SUM(expr)/COUNT(expr))/(COUNT(expr)-1)*/

select var_samp(salary) FROM hr.employees
WHERE department_id =20--結果爲24500000

select count(1)/*COUNT(expr)*/ FROM hr.employees WHERE department_id =20;

select (sum(power(salary,2)) - power(sum(salary),2)/2)/(2-1)
FROM hr.employees WHERE department_id =20--結果爲24500000



/*VARIANCE
功能描述:該函數返回表達式的變量,Oracle 計算該變量如下:
如果表達式中行數爲 1,則返回 0
如果表達式中行數大於 1,則返回 VAR_SAMP*/

select VARIANCE(salary) FROM hr.employees
WHERE department_id =10--表達式中行數爲 1 結果爲0

select VARIANCE(salary) FROM hr.employees
WHERE department_id =20--表達式中行數大於1 結果爲24500000
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章