1

在 MySQL 中,虽然有 AVG 函数,但没有 Median。所以我需要创建一种方法来计算销售数据的中值。

我知道中位数是中间值。但是,我不清楚您如何处理不是奇数列表的列表。您如何确定选择哪个值作为中位数,或者是否需要进一步计算来确定这一点?谢谢!

4

1 回答 1

0

我喜欢包含明确的 ORDER BY 语句:

选择 t1.val 作为 median_val

从 (

SELECT @rownum:=@rownum+1 as row_number, d.val FROM data d, (SELECT @rownum:=0) r WHERE 1 -- 在此处放置一些 where 子句 ORDER BY d.val ) as t1,

( SELECT count(*) as total_rows FROM data d WHERE 1 -- 将相同的 where 子句放在这里 ) as t2 WHERE 1 AND t1.row_number=floor(total_rows/2)+1;

于 2013-02-06T16:46:43.477 回答