with t as (
select user_id,sum(order_price) as pr
from order_tb
where order_price>100
group by user_id
)
select t.user_id,pr+point as point
from t join uservip_tb u on t.user_id=u.user_id
group by t.user_id
ORDER BY point DESC
这题主要是order_tb中,每一个客户可能会有多个数据, 我们只要金额>100的订单,,然后剩下的订单按照user_id汇总。
cte中是where order_price>100 ,,,,,而不是having pr>100, 用having就是对所有订单加在一起之后是否大于一百了。 where的话,是先筛选出大于100的订单, 然后再按照id进行汇总, 金额小于100的订单在这题里面没有意义。。
反正, 总之得仔细看题。。
pr+point as point就是更新了。

京公网安备 11010502036488号