题解 | #某店铺的各商品毛利率及店铺整体毛利率#

某店铺的各商品毛利率及店铺整体毛利率

https://www.nowcoder.com/practice/65de67f666414c0e8f9a34c08d4a8ba6

这个题的逻辑还是比较简单,应该都能明白,不再打一堆废话。评论区可能有更简练的写法。

注意一点就可以了:1、注意退单的订单数据,在计算销售的总价格和总数量的时候,要把退单的那个明细表里对应的量要剪掉。

with e as
(
    select
        d.product_id,
        format((1-d.in_price/(d.totalUnitPrice/totalCnts))*100,1) as profit_rate,
        format((1 - sum(d.in_price*d.totalCnts) over() /sum(d.totalUnitPrice) over())*100,1) as shopRate
    from 
    (
        select
            a.product_id,
            max(a.in_price) as in_price,
            sum(case when c.status = 1 then b.price*b.cnt when c.status = 2 then 0-b.price*b.cnt end) as totalUnitPrice,
            sum(case when c.status = 1 then b.cnt when c.status = 2 then 0-b.cnt end) as totalCnts
        from tb_product_info a join tb_order_detail b on a.shop_id='901' and a.product_id = b.product_id 
            join tb_order_overall c on b.order_id = c.order_id and date_format(c.event_time,'%Y-%m-%d') >= '2021-10-01'

        group by a.product_id
    ) d 
)
select
    f.product_id,concat(f.profit_rate,'%') as profit_rate
from 
(
    select
        '店铺汇总' as product_id,max(shopRate) as profit_rate,1 as rk
    from e
    union all
    select
        product_id,profit_rate,2 as rk
    from e where e.profit_rate > 24.9
) f

order by rk,product_id

全部评论

相关推荐

ProMonkey2024:5个oc?厉害! 但是有一个小问题:谁问你了?😡我的意思是,谁在意?我告诉你,根本没人问你,在我们之中0人问了你,我把所有问你的人都请来 party 了,到场人数是0个人,誰问你了?WHO ASKED?谁问汝矣?誰があなたに聞きましたか?누가 물어봤어?我爬上了珠穆朗玛峰也没找到谁问你了,我刚刚潜入了世界上最大的射电望远镜也没开到那个问你的人的盒,在找到谁问你之前我连癌症的解药都发明了出来,我开了最大距离渲染也没找到谁问你了我活在这个被辐射蹂躏了多年的破碎世界的坟墓里目睹全球核战争把人类文明毁灭也没见到谁问你了(别的帖子偷来的,现学现卖😋)
点赞 评论 收藏
分享
11-08 16:53
门头沟学院 C++
投票
滑模小马达:第三个如果是qfqc感觉还行,我签的qfkj搞电机的,违约金也很高,但公司感觉还可以,听说之前开过一个试用转正的应届生,仅供参考。
点赞 评论 收藏
分享
点赞 收藏 评论
分享
牛客网
牛客企业服务