0

我想创建一个可用于计算 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

任何帮助将不胜感激。

4

0 回答 0