【力扣刷题日记】1322.广告效果-我那不值一提的想法:

时间:2024-04-03 15:43:24
  • 首先梳理表内容,题干一共给了一张广告表,记录了广告id,用户id,用户行为。
  • 其次分析需求,需要找到每条广告的点击率,点击率的计算公式是 所有广告点击数量/(所有广告点击数量+所有广告浏览数量),那么这道题跟着这个公式求解就可以了。
  • 这道题首先要去掉所有忽略广告的行为,然后进行公式求解
with ctr as (
select ad_id,round(sum(if(action = "Clicked",1,0))*100/count(ad_id),2) as res
from Ads
where action != "Ignored"
group by ad_id
)

查找出所有的ad_id,并左连接上一个临时表

select distinct a.ad_id,ifnull(c.res,0) as ctr 
from Ads a 
left join ctr c 
on a.ad_id = c.ad_id
order by ctr desc,ad_id