文章目录

  • 1. 题目
  • 2. 解题

1. 题目

表: 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)来衡量,公式如下:

CTR={0,if Ad total clicks +Ad total views =0Ad total clicks Ad total clicks +Ad total views ×100,otherwise C T R=\left\{\begin{array}{ll}0, & \text { if Ad total clicks }+\text { Ad total views }=0 \\ \frac{\text { Ad total clicks }}{\text { Ad total clicks }+\text { Ad total views }} \times 100, & \text { otherwise }\end{array}\right.CTR={0, Ad total clicks + Ad total views  Ad total clicks ​×100,​ if Ad total clicks + Ad total views =0 otherwise ​

写一条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(升序)排序

来源:力扣(LeetCode) 链接:https://leetcode-cn.com/problems/ads-performance
著作权归领扣网络所有。商业转载请联系官方授权,非商业转载请注明出处。

2. 解题

# Write your MySQL query statement below
select ad_id, round(ifnull(sum(action = 'Clicked')/(sum(action = 'Clicked')+sum(action = 'Viewed'))*100, 0) ,2) as ctr
from Ads
group by ad_id
order by ctr desc, ad_id

or

# Write your MySQL query statement below
select ad_id, round(ifnull(sum(action = 'Clicked')/(sum(action != 'Ignored'))*100, 0) ,2) as ctr
from Ads
group by ad_id
order by ctr desc, ad_id

我的CSDN博客地址 https://michael.blog.csdn.net/

长按或扫码关注我的公众号(Michael阿明),一起加油、一起学习进步!

LeetCode MySQL 1322. 广告效果相关推荐

  1. LeetCode MySQL解题目录

    已完成的 LeetCode MySQL 数据库题目.点击查看我的 LeetCode 算法解题目录. 已解决 123/123 - 简单 54 中等 51 困难 18 前置入门学习 MySQL 基本查询. ...

  2. php产品效果图,jQuery_基于JQuery制作的产品广告效果,效果图.如下: 动画效果介绍 - phpStudy...

    基于JQuery制作的产品广告效果 效果图.如下: 动画效果介绍:这组广告效果是打开页面后图片会自动播放,从1-5共计5张图片,如果属标放到右下角的1.2.3.4.5列表上,可以自由进行切换到自己想看 ...

  3. 广告效果数据的实时计算与分析(Druid)(一)

    我是做SSP-供应方平台服务的,工作中除了负责SSP 管理后台的需求开发(如,媒体应用和位置的管理.流量分配.效果数据的报表展示.SDK性能分析等)之外,最主要的是负责SSP广告效果数据的实时统计与分 ...

  4. php广告轮播效果,使用swiper组件实现轮播广告效果

    这次给大家带来使用swiper组件实现轮播广告效果,使用swiper组件实现轮播广告效果的注意事项有哪些,下面就是实战案例,一起来看一下. 1.安装swipernpm install swiper@3 ...

  5. LeetCode MySQL 1308. 不同性别每日分数总计(累加/变量/窗口函数)

    文章目录 1. 题目 2. 解题 1. 题目 表: Scores +---------------+---------+ | Column Name | Type | +--------------- ...

  6. JQuery实现广告效果(滚动切换)

    JQuery实现广告效果(滚动切换) Html+css 效果如上图 代码: Java代码   <!DOCTYPE html> <html> <head lang=&quo ...

  7. 【广告技术】如何提升定向广告效果?腾讯广告提出高质量负实例生成新方法

    基于CCF-腾讯犀牛鸟基金的平台支持,腾讯广告与清华大学李勇老师团队围绕分布式大规模推荐算法开展了深入的合作研究.双方最新的合作成果入选了信息检索和数据挖掘领域顶级学术会议之一ACM CIKM 202 ...

  8. jquery banner广告图片左右切换,模仿实现支付宝广告效果

    原文:jquery banner广告图片左右切换,模仿实现支付宝广告效果 源代码下载地址:http://www.zuidaima.com/share/1771186023091200.htm 由最代码 ...

  9. Facebook广告效果数据获取

    一.背景 公司每年在Facebook和Google上投放了大量的广告,我总不能让老板登录Facebook广告投放平台上去看广告效果,其实老板只关注每天花了多少钱引来了多少客户,每个客户平均花费多少钱, ...

最新文章

  1. 数据预处理常用技巧 | 数据分析中如何处理缺失值?(文末福利)
  2. makefile笔记
  3. 硬分叉升级越来越近,BCH社区都在做什么?
  4. css div漂浮向下,DIV+CSS固定底部的漂浮广告
  5. 【Java】欧拉回路的判定
  6. ccs4c语言用户手册,CCS v4.x快速入门:EasyDsp开发套件产品手册
  7. CMake - SWIG - 移植动态库
  8. mysql 备库同步_MYSQL主从库同步配置过程
  9. windows下CodeBlocks TMD-GCC安装及配置
  10. Xib实现UICollectionView
  11. mysql_视图与变量
  12. 微信小程序下载pdf到本地的坑
  13. 职场泥潭 | 这样的IT公司绝对不宜久留
  14. iOS仿苹果原生天气app总结
  15. [转贴]IE中 无法打开internet站点 。。。。。
  16. DES的s盒输出CPA和DPA攻击
  17. jQuery Validate表单中文正则验证+手机号正则验证
  18. vue3 - 23.h函数 / 函数式编程
  19. java语言就业方向_Java就业方向有哪些?
  20. Android中把图片、视频保存到相册中

热门文章

  1. 申请评分卡(A卡)的开发过程(1)
  2. 机器学习中目标函数、损失函数以及正则项的通俗解释
  3. php数值操作,php数值计算num类简单操作示例
  4. java统计系统线程数_Java并发(八)计算线程池最佳线程数
  5. python实参_python的形参和实参
  6. ios 后台下载,断点续传总结
  7. jquery深入学习
  8. 网卡驱动收发包过程图解
  9. git命令:将多个commit提交记录修改为1条
  10. 记一次解决问题的掉坑过程