美文网首页
Leetcode1322. 广告效果(简单)

Leetcode1322. 广告效果(简单)

作者: kaka22 | 来源:发表于2020-07-22 09:31 被阅读0次

题目
表: Ads

+---------------+---------+
| Column Name   | Type    |
+---------------+---------+
| ad_id         | int     |
| user_id       | int     |
| action        | enum    |
+---------------+---------+

(ad_id, user_id) 是该表的主键
该表的每一行包含一条广告的 ID(ad_id),用户的 ID(user_id) 和用户对广告采取的行为 (action)
action 列是一个枚举类型 ('Clicked', 'Viewed', 'Ignored') 。

一家公司正在运营这些广告并想计算每条广告的效果。

广告效果用点击通过率(Click-Through Rate:CTR)来衡量,公式如下:



写一条SQL语句来查询每一条广告的 ctr ,

ctr 要保留两位小数。结果需要按 ctr 降序、按 ad_id 升序 进行排序。

查询结果示例如下:

Ads 表:

+-------+---------+---------+
| ad_id | user_id | action  |
+-------+---------+---------+
| 1     | 1       | Clicked |
| 2     | 2       | Clicked |
| 3     | 3       | Viewed  |
| 5     | 5       | Ignored |
| 1     | 7       | Ignored |
| 2     | 7       | Viewed  |
| 3     | 5       | Clicked |
| 1     | 4       | Viewed  |
| 2     | 11      | Viewed  |
| 1     | 2       | Clicked |
+-------+---------+---------+

结果表:

+-------+-------+
| ad_id | ctr   |
+-------+-------+
| 1     | 66.67 |
| 3     | 50.00 |
| 2     | 33.33 |
| 5     | 0.00  |
+-------+-------+

对于 ad_id = 1, ctr = (2/(2+1)) * 100 = 66.67
对于 ad_id = 2, ctr = (1/(1+2)) * 100 = 33.33
对于 ad_id = 3, ctr = (1/(1+1)) * 100 = 50.00
对于 ad_id = 5, ctr = 0.00, 注意 ad_id = 5 没有被点击 (Clicked) 或查看 (Viewed) 过
注意我们不关心 action 为 Ingnored 的广告
结果按 ctr(降序),ad_id(升序)排序

解答
其实就是对每个ad_id进行分组 统计Clicked的数量 除以Clicked和views的总数量

select A.ad_id, round(sum(A.action = 'Clicked')/(sum(A.action = 'Clicked') + sum(A.action = 'Viewed')) *100, 2) as ctr
from Ads as A
group by A.ad_id

但是要注意 如果Clicked的数量 除以Clicked和views的总数量为0 得到的将是NULL而不是0 可以用IF 也可以用IFNULL

select A.ad_id, round(ifnull(sum(A.action = 'Clicked')/(sum(A.action = 'Clicked') + sum(A.action = 'Viewed')), 0) *100, 2) as ctr
from Ads as A
group by A.ad_id

相关文章

  • Leetcode1322. 广告效果(简单)

    题目表: Ads (ad_id, user_id) 是该表的主键该表的每一行包含一条广告的 ID(ad_id),用...

  • 广告越简单粗暴效果越好

    今天刷到一条抖音,说起广告的问题,感觉说的很对,记录下来。 人有两套记忆系统,一套是主动记忆系统,一套是被动记忆系...

  • 2018-06-26

    简单的实现隐藏和展示某广告的效果 Document .SubCategor...

  • 效果广告ROI如何提升?从App监测分析开始

    App推广必然要开辟渠道,比如广告。简单来说,移动互联网广告可以分为品牌广告和效果广告两大类型。 顾名思义,品牌广...

  • ios app启动图片,之后的广告图片效果

    之前很奇怪app启动之后的广告展示是怎么处理的,特意试了下效果,下面是我简单实现的一个广告展示效果代码如下:在Ap...

  • 想要提升移动广告曝光,就要从这些方面入手

    广告的效果根据受众是否已看到广告以及受广告影响的程度,广告效果可以分为传播效果、心理效果和行动效果三个层次,牵涉到...

  • 联机共读11期-5-4-《流量池》-林禄喜

    第四,五章 裂变营销的奥义 Why 为什么要进行裂变营销?很简单,就是为了降低广告成本,让品牌广告,效果广告响起...

  • cesium-广告牌billboard

    广告牌简单理解就是图片。跟html不一样的是,广告牌有随球转动的效果。

  • 广告效果

    每天学一点新闻传播学。 广告效果的含义 1、广告效果是指广告活动或广告作品对消费者产生的影响 2、狭义的广告效果:...

  • 广告效果

    有空闲时,会时不时看看简书里喜欢的作者的文章,和一些推送的文章。自诩过赌性不大,但也会玩简书里的天天抽奖。好在这个...

网友评论

      本文标题:Leetcode1322. 广告效果(简单)

      本文链接:https://www.haomeiwen.com/subject/ipigkktx.html