题解 | 更新用户积分信息?
更新用户积分信息?
https://www.nowcoder.com/practice/ef1f2fda4338460b948810f3f7e7a68e
/*
select
u.user_id,
u.point + sum(
case
when o.order_price > 100 then order_price
else 0
end
) as point
from
uservip_tb u
inner join order_tb o on u.user_id = o.user_id
group by
user_id
having
sum(
case
when o.order_price <= 100 then 0
else order_price
end
) > 0
order by
point desc;
*/
select
u.user_id,
u.point + sum(o.order_price) as point
from
uservip_tb u
join (
select
user_id,
order_price
from
order_tb
where
order_price > 100
)o on o.user_id = u.user_id
group by
user_id
having
sum(o.order_price) > 0
order by
point desc;
注意培养自己的解题思维,感觉自己的写法不如官方来的清晰,可读性较差。
查看1道真题和解析