2010年6月7日 星期一

[Oracle]箱型圖(BoxPlot)統計值運算

繪製箱型圖顯示一組數據的分散情況,而若從資料庫中的Raw Data,來繪製箱型圖,則需結算出六個必要數值:最大值、最小值、中位數、平均值、Q1下四分位數、Q3下四分位數

以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

沒有留言:

張貼留言