我想创建一个可用于计算 MySQL 中位数的函数。我找到了这篇文章,但我无法理解它。有没有什么简单的方法可以创建一个函数来计算 MySQL 中的中位数。下面是我的代码。我想使用中位数而不是平均值。
更新查询
select t1.brain_sku
,avg(weeklysales_4wks) as Avg_4Weeks /* Replace avg with median */
,avg(weeklysales_12wks) as Avg_12Weeks /* Replace avg with median */
from (
select brain_sku, week(order_date) as week_date, sum(quantity_ordered) as weeklysales_4wks
from sales
WHERE date(order_date) > date(DATE_SUB(NOW(), INTERVAL 4 WEEK))
and IF(DAYNAME(NOW()) != 'Sunday', week(order_date) != week(now()), week(order_date) <= week(now()) )
AND brain_sku in ('1400280','1177260')
GROUP BY brain_sku, week(order_date)
) t1
RIGHT JOIN (
/*select t2.brain_sku, avg(t2.weeklysales_12wks) as weeklysales_12wks from (*/
select brain_sku, week(order_date) as week_date, sum(quantity_ordered) as weeklysales_12wks
from sales
WHERE date(order_date) > date(DATE_SUB(NOW(), INTERVAL 12 WEEK))
and IF(DAYNAME(NOW()) != 'Sunday', week(order_date) != week(now()), week(order_date) <= week(now()) )
and brain_sku in ('1400280','1177260')
GROUP BY brain_sku, week(order_date)
) t2
/*GROUP BY t2.brain_sku
) t3 */
ON t1.brain_sku = t2.brain_sku
GROUP BY t1.brain_sku
任何帮助将不胜感激。