【问题标题】:Evaluating the mean absolute deviation of a set of numbers in Oracle在 Oracle 中评估一组数字的平均绝对偏差
【发布时间】:2011-05-03 04:54:54
【问题描述】:

我正在尝试实现一个过程来评估一组数字的median absolute deviation(通常通过 GROUP BY 子句获得)。

我想使用的查询示例是:

select id, mad(values) from mytable group by id;

我将使用聚合函数example,但有点困惑,因为该函数需要在所有迭代完成之前知道所有数字的中位数。

任何关于如何实现这种功能的指针都将不胜感激。

【问题讨论】:

    标签: sql oracle aggregate


    【解决方案1】:

    Oracle 10g+:

    SELECT  MEDIAN(ABS(value - med))
    FROM    (
            SELECT  value, MEDIAN(value) OVER() AS med
            FROM    mytable
            )
    

    ,或与GROUP BY相同:

    SELECT  id, MEDIAN(ABS(value - med))
    FROM    (
            SELECT  id, value, MEDIAN(value) OVER(PARTITION BY id) AS med
            FROM    mytable
            )
    GROUP BY
            id
    

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2021-04-19
      • 2013-12-21
      • 1970-01-01
      • 1970-01-01
      • 2019-01-02
      • 2015-07-03
      • 1970-01-01
      • 2020-06-08
      相关资源
      最近更新 更多