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

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

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

这题主要是理解题目的意思,理解了题目要求的是什么,那么写sql就很很容易了,
按照思路,一步一步写下来即可,本人分享我的思路如下:
1. 使用with语句关联三张表,按照条件筛选,并选出需要的列。
2. 按照题目要求,先求出店铺汇总。
3. 接着就出每一个商品的毛利率。
4. 使用union all语句连接
最终的sql如下:
WITH three_table_join AS(
    SELECT
        t2.product_id,t2.in_price,
        t3.total_cnt,t3.status,
        t1.price,t1.cnt
    FROM
        tb_order_detail t1
    JOIN
        tb_product_info t2
    ON t1.product_id = t2.product_id
    JOIN
        tb_order_overall t3
    ON t1.order_id = t3.order_id
    WHERE DATE_FORMAT(t3.event_time, '%Y%m') >= '202110'
    AND t2.shop_id = '901'
)
SELECT
     shop_total product_id,CONCAT(ROUND((1 - SUM(in_price * cnt) / SUM(price * cnt))*100,1),'%') profit_rate
FROM(
    SELECT
       *,'店铺汇总' AS  shop_total
    FROM
        three_table_join
)tmp
GROUP BY shop_total
UNION ALL
SELECT *
FROM(
	SELECT
		product_id,CONCAT(ROUND((1 - SUM(in_price * cnt) / SUM(price * cnt))*100,1),'%') profit_rate
	FROM
		three_table_join
	GROUP BY product_id
	HAVING ROUND((1 - SUM(in_price * cnt) / SUM(price * cnt))*100,1) > 24.9
  ORDER BY product_id
)tmp1


全部评论

相关推荐

评论
点赞
收藏
分享

创作者周榜

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