题解 | #某店铺的各商品毛利率及店铺整体毛利率#
某店铺的各商品毛利率及店铺整体毛利率
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
查看12道真题和解析