【发布时间】:2013-02-05 21:24:39
【问题描述】:
在 MySQL 中,虽然有 AVG 函数,但没有 Median。所以我需要创建一种方法来计算销售数据的中值。
我知道中值是中间值。但是,我不清楚您如何处理不是奇数列表的列表。您如何确定选择哪个值作为中位数,或者是否需要进一步计算来确定这一点?谢谢!
【问题讨论】:
-
如果有偶数个值,取中间两个值的平均值。
标签: median
在 MySQL 中,虽然有 AVG 函数,但没有 Median。所以我需要创建一种方法来计算销售数据的中值。
我知道中值是中间值。但是,我不清楚您如何处理不是奇数列表的列表。您如何确定选择哪个值作为中位数,或者是否需要进一步计算来确定这一点?谢谢!
【问题讨论】:
标签: median
我喜欢包含明确的 ORDER BY 语句:
选择 t1.val 作为中值_val
来自(
选择@rownum:=@rownum+1 as row_number, d.val
FROM 数据 d, (SELECT @rownum:=0) r
在哪里 1
-- 在这里放一些 where 子句
由 d.val 订购
) 作为 t1,
( 选择计数(*)作为 total_rows FROM 数据 在哪里 1 -- 在此处放置相同的 where 子句 ) 作为 t2 在哪里 1 AND t1.row_number=floor(total_rows/2)+1;
【讨论】: