以Oracle範例資料庫中的employees資料表為例,計算每個部門的箱型圖數值:
select department_id, max(salary) Upper_whisker, min(salary) Lower_whisker, round(avg(salary),3) Average, PERCENTILE_CONT(0.25) WITHIN GROUP (ORDER BY salary ASC) Q1, PERCENTILE_CONT(0.5) WITHIN GROUP (ORDER BY salary ASC) Median, PERCENTILE_CONT(0.75) WITHIN GROUP (ORDER BY salary ASC) Q3 from employees t group by department_id
PERCENTILE_CONT為Oracle中的特殊Analytic Function,用於計算群組數值中分佈的百分比,
以中位數為例,為該群組數值中,從小到大排列的第50%的數字,
PERCENTILE_CONT(0.5)的0.5則代表第50%,
WITHIN GROUP (ORDER BY salary ASC)則代表以薪水salary做從小到大的排列。
下圖將部門代號為100的數值以Excel驗算中位數、Q1、Q3的數值
參考資源:
OracleR Database SQL Reference - PERCENTILE_CONT
Oracle Analytic Functions
沒有留言:
張貼留言