APPROX_MEDIAN
目的
APPROX_MEDIAN
は、連続分散モデルを想定する近似逆分散ファンクションです。数値または日時値を取得して、おおよその中央値、または値のソート後に中央値となる、おおよその補間された値を戻します。計算では、NULLは無視されます。
このファンクションは、MEDIAN
ファンクションの代替機能として、正確な中央値または補間された値を戻します。APPROX_MEDIAN
は、正確な結果とわずかに誤差がありますが、MEDIAN
よりはるかに高速に大量のデータを処理します。
expr
には、おおよその中央値を計算する式を指定します。expr
で許容されるデータ型と、このファンクションの戻り値データ型は、DETERMINISTIC
句で指定するアルゴリズムによって異なります。
DETERMINISTIC
この句を使用すると、このファンクションで使用するアルゴリズムのタイプを指定して、おおよその中央値を計算できます。
-
DETERMINISTIC
を指定すると、このファンクションによって、決定的なおおよその中央値が計算されます。この場合、expr
は数値または数値に暗黙的に変換可能な値に評価される必要があります。また、その引数の数値データ型と同じデータ型を戻します。 -
DETERMINSTIC
を指定しないと、このファンクションによって、非決定的なおおよその中央値が計算されます。この場合、expr
は、数値または日時値、あるいは数値または日時値に暗黙的に変換可能な値に評価される必要があります。また、その引数の数値または日時データ型と同じデータ型を戻します。
ERROR_RATE | CONFIDENCE
これらの句を使用すると、このファンクションによって計算される値の精度を決定できます。これらの句のいずれかを指定すると、expr
のおおよその中央値が戻されるかわりに、次のいずれかの値を表す0から1までの10進値(それらの値を含む)が戻されます。
-
ERROR_RATE
を指定すると、戻り値は、expr
のおおよその中央値の計算におけるエラー率を表します。 -
CONFIDENCE
を指定すると、戻り値は、ERROR_RATE
を指定したときに戻されるエラー率の信頼水準を表します。
関連項目:
-
「APPROX_PERCENTILE」を参照してください。これは、指定されたパーセンタイルに対して、そのパーセンタイルに一致するように補間されたおおよその値を戻します。
APPROX_MEDIAN
は、パーセンタイル値が0.5に指定される特別なAPPROX_PERCENTILE
です。
例
次の問合せは、hr
.employees
表内の部門ごとに、決定的な給与のおおよその中央値を戻します。
SELECT department_id "Department", APPROX_MEDIAN(salary DETERMINISTIC) "Median Salary" FROM employees GROUP BY department_id ORDER BY department_id; Department Median Salary ---------- ------------- 10 4400 20 6000 30 2765 40 6500 50 3100 60 4800 70 10000 80 9003 90 17000 100 7739 110 8300 7000
次の問合せは、前の問合せによって戻された給与のおおよその中央値におけるエラー率を戻します。
SELECT department_id "Department", APPROX_MEDIAN(salary DETERMINISTIC, 'ERROR_RATE') "Error Rate" FROM employees GROUP BY department_id ORDER BY department_id; Department Error Rate ---------- ---------- 10 .002718282 20 .021746255 30 .021746255 40 .002718282 50 .019027973 60 .019027973 70 .002718282 80 .021746255 90 .021746255 100 .019027973 110 .019027973 .002718282
次の問合せは、前の問合せによって戻されたエラー率について信頼水準を戻します。
SELECT department_id "Department", APPROX_MEDIAN(salary DETERMINISTIC, 'CONFIDENCE') "Confidence Level" FROM employees GROUP BY department_id ORDER BY department_id; Department Confidence Level ---------- ---------------- 10 .997281718 20 .999660215 30 .999660215 40 .997281718 50 .999611674 60 .999611674 70 .997281718 80 .999660215 90 .999660215 100 .999611674 110 .999611674 .997281718
次の問合せは、hr
.employees
表内の部門ごとに、非決定的な雇用開始日のおおよその中央値を戻します。
SELECT department_id "Department", APPROX_MEDIAN(hire_date) "Median Hire Date" FROM employees GROUP BY department_id ORDER BY department_id; Department Median Hire Date ---------- ---------------- 10 17-SEP-03 20 17-FEB-04 30 24-JUL-05 40 07-JUN-02 50 15-MAR-06 60 05-FEB-06 70 07-JUN-02 80 23-MAR-06 90 17-JUN-03 100 28-SEP-05 110 07-JUN-02 24-MAY-07