您好, 欢迎来到 !    登录 | 注册 | | 设为首页 | 收藏本站

根据每日收益分成将固定值分配给各个国家/地区时,排除某些值

根据每日收益分成将固定值分配给各个国家/地区时,排除某些值

您可以在计算 周围 和窗口 使用case表达式: sum

select 
    sales_date, 
    country, 
    sum(sales_volume),
    case when country <> 'NL'
        then sum(sum(fix_costs)) over(partition by year(sales_date), month(sales_date))
            / day(last_day(sales_date)) 
            * sum(sales_volume)
            / sum(case when country <> 'NL' then sum(sales_volume) else 0 end) over(partition by sales_date)
    else 0
    end as fix_cost_per_day
from sales
group by 1,2;

销售日期| 国家| 总和(sales_volume)| fix_cost_per_day
:--------- | :------ | ----------------:| ---------------:
2020-01-03 | DE | 500 | 37.95066414
2020-01-03 | FR | 350 | 26.56546490
2020-01-03 | NL | 320 |             _空_
2020年1月30日| 无| 0 |             _空值_
2020-02-15 | DE | 700 | 137.14733542
2020-02-15 | FR | 180 | 35.26645768
2020-02-15 | NL | 420 |             _null_ 
2020-02-29 | 无| 0 |             _空值_
2020-03-27 | DE | 180 | 20.19635344
2020-03-27 | FR | 970 | 108.83590463
2020-03-27 | NL | 670 |             _null_ 
2020-03-31 | 无| 0 |             _空值_
其他 2022/1/1 18:46:12 有326人围观

撰写回答


你尚未登录,登录后可以

和开发者交流问题的细节

关注并接收问题和回答的更新提醒

参与内容的编辑和改进,让解决方法与时俱进

请先登录

推荐问题


联系我
置顶