with s901 as (
select
p.product_id,
p.shop_id,
p.in_price,
d.price,
d.cnt
from
tb_product_info as p
join
tb_order_detail as d
on p.product_id = d.product_id
join
tb_order_overall as o
on o.order_id = d.order_id
where
p.shop_id = 901
and date(o.event_time) >= '2021-10-01'
)
select
'店铺汇总' as product_id,
concat(round((1 - sum(in_price * cnt) / sum(price * cnt)) * 100, 1), '%') as profit_rate
from
s901
group by
shop_id
union all # 不去重,不排序
select
CAST(product_id AS CHAR) as product_id,
concat(round((1 - sum(in_price * cnt) / sum(price * cnt)) * 100, 1), '%') as profit_rate
from
s901
group by
product_id
having
profit_rate > 24.9
order by
CASE WHEN product_id = '店铺汇总' THEN 0 ELSE 1 END, # 给 “店铺汇总” 这行打排序标记 0,其他商品打 1 按升序(ASC)排序
product_id ASC;