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

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

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

with a as (select * from tb_product_info where shop_id = 901), b as (select * from tb_order_overall where status =1 and event_time > '2021-10-01'),tmp as (select 
    a.product_id,a.in_price,c.price,c.cnt,
    a.in_price*c.cnt as totalin,
    c.price*c.cnt as totalout
from  a join tb_order_detail c on a.product_id=c.product_id join  b on c.order_id = b.order_id )

select * from (select '店铺汇总' as product_id,
    concat(round((1-sum(totalin)/sum(totalout))*100,1),'%') profit_rate from tmp 
    union 
select 
    product_id,
    concat(round((1-sum(totalin)/sum(totalout))*100,1),'%') profit_rate
from tmp  group by product_id having left(profit_rate,4) > 24.9) p  

我还是太全面了 这也能写出来........

  • 先建3张临时表(a/b/tmp) 表c是detail原表 表a用来锁定店铺901 表b锁定已支付订单且下单日期在10月开始
  • 表tmp将3张表连接 得到每个product_id所对应的进货价in_price、售价price、订购数cnt,进货价*数量=总原价totalin,售价*数量=总售价totalout
  • 对于各商品的毛利率 需要groupby分组 having限定毛利率>24.9 -->得到各个商品的product_id和毛利率profit_rate
  • 对于店铺汇总表 无需分组 -->得到汇总的id"店铺汇总"和毛利率profit_rate
  • 使用union联结

需要注意的是:如果某个商品的毛利率<= 24.9 那么他不会在union表中出现 但是店铺汇总还是需要计算它的

全部评论

相关推荐

关于我大学本科四年,想了很多,但还是不知道该怎么动笔&nbsp;“大学四年,是我从懵懂少年走向职场青年的转折期。这一路跌跌撞撞,有迷茫,有遗憾,也有成长和决心。”&nbsp;大一刚进来时仍然有高中那股学习劲,经常一个人去图书馆学高等数学,但后面劲头一过便开始在宿舍开启躺平生活(现在想想那段时间真的很爽,无忧无虑)。由于大一担任班干部,所以经常要跟其他班的班干部交流,在此期间认识了隔壁班的一位女生,短发而很可爱,因为很多团建还有比赛都是我们两班一起参加的,而且我和她都是负责人,所以交集很多,后面慢慢地彼此对产生了好感,所以在大一刚开学的2个月后,我们在一起了,彼此之前都是初恋。但当时我真的是太太太直男了,对感情的想...
真烦好烦真烦:骗哥们可以,别把你自己也骗到了就行。哥们被你骗了真无所谓的,打个哈哈就过了。但希望你打完这段话后擦一下眼角,别让眼泪掉在手机屏幕上了就行。你说的这些话,哥们信一下也是没什么的。还能让你有个心里安慰,但这种话说出来骗骗兄弟就差不多得了,哥们信你一下也不会少块肉,但是你别搞得自己也当真了就行。哥们被你骗一下是真无所谓的,兄弟笑笑也就过去了。真不是哥们想要破你防,你擦擦眼泪好好想想,除了兄弟谁还会信你这些话?
点赞 评论 收藏
分享
喜欢飞来飞去的雪碧在刷代码:可以试一试字节
点赞 评论 收藏
分享
05-12 11:09
已编辑
门头沟学院 后端
已注销:没必要放这么多专业技能的描述。这些应该是默认已会的,写这么多行感觉在凑内容。项目这块感觉再包装包装吧,换个名字,虽然大家的项目基本都是网上套壳的,但是你这也太明显了。放一个业务项目,再放一个技术项目。技术项目,例如中间件的一些扩展和尝试。
点赞 评论 收藏
分享
评论
点赞
收藏
分享

创作者周榜

更多
牛客网
牛客网在线编程
牛客网题解
牛客企业服务