【场景】:分组求和

【分类】:分组查询

分析思路

难点:

1.GMV:累计结算金额,即 sum(sales_price)

2.吊牌总金额:产品数量*吊牌单价,即 sum(sales_num * tag_price)

select 查询结果 [折扣率]
from 从哪张表中查询数据[产品情况表;销售数据表]

求解代码

错误代码

select
    round(100*sum(sales_price/sales_num)/sum(tag_price),2) as discount_rate
from product_tb
join sales_tb using(item_id)

为什么: 100*sum(结算金额 / 数量) / sum(吊牌单价) 就是错的呢?

可以举个例子,分子分母相加减要注意 4/7 不等于 1/2 + 3/5

正确代码

select
    round(100*sum(sales_price)/sum(tag_price*sales_num),2) as discount_rate
from product_tb
join sales_tb using(item_id)