LeetCode MySQL 1132. 报告的记录 II
文章目录
- 1. 题目
- 2. 解题
1. 题目
动作表: Actions
+---------------+---------+
| Column Name | Type |
+---------------+---------+
| user_id | int |
| post_id | int |
| action_date | date |
| action | enum |
| extra | varchar |
+---------------+---------+
这张表没有主键,并有可能存在重复的行。
action 列的类型是 ENUM,
可能的值为 ('view', 'like', 'reaction', 'comment', 'report', 'share')。
extra 列拥有一些可选信息,
例如:报告理由(a reason for report)或反应类型(a type of reaction)等。
移除表: Removals
+---------------+---------+
| Column Name | Type |
+---------------+---------+
| post_id | int |
| remove_date | date |
+---------------+---------+
这张表的主键是 post_id。
这张表的每一行表示一个被移除的帖子,
原因可能是由于被举报或被管理员审查。
编写一段 SQL 来查找:在被报告为垃圾广告的帖子中,被移除的帖子的每日平均占比,四舍五入到小数点后 2 位。
查询结果的格式如下:
Actions table:
+---------+---------+-------------+--------+--------+
| user_id | post_id | action_date | action | extra |
+---------+---------+-------------+--------+--------+
| 1 | 1 | 2019-07-01 | view | null |
| 1 | 1 | 2019-07-01 | like | null |
| 1 | 1 | 2019-07-01 | share | null |
| 2 | 2 | 2019-07-04 | view | null |
| 2 | 2 | 2019-07-04 | report | spam |
| 3 | 4 | 2019-07-04 | view | null |
| 3 | 4 | 2019-07-04 | report | spam |
| 4 | 3 | 2019-07-02 | view | null |
| 4 | 3 | 2019-07-02 | report | spam |
| 5 | 2 | 2019-07-03 | view | null |
| 5 | 2 | 2019-07-03 | report | racism |
| 5 | 5 | 2019-07-03 | view | null |
| 5 | 5 | 2019-07-03 | report | racism |
+---------+---------+-------------+--------+--------+Removals table:
+---------+-------------+
| post_id | remove_date |
+---------+-------------+
| 2 | 2019-07-20 |
| 3 | 2019-07-18 |
+---------+-------------+Result table:
+-----------------------+
| average_daily_percent |
+-----------------------+
| 75.00 |
+-----------------------+
2019-07-04 的垃圾广告移除率是 50%,因为有两张帖子被报告为垃圾广告,但只有一个得到移除。
2019-07-02 的垃圾广告移除率是 100%,因为有一张帖子被举报为垃圾广告并得到移除。
其余几天没有收到垃圾广告的举报,因此平均值为:(50 + 100) / 2 = 75%
注意,输出仅需要一个平均值即可,我们并不关注移除操作的日期。
来源:力扣(LeetCode) 链接:https://leetcode-cn.com/problems/reported-posts-ii
著作权归领扣网络所有。商业转载请联系官方授权,非商业转载请注明出处。
2. 解题
- 先找出垃圾帖子,注意 distinct 去重
select distinct post_id, action_date
from Actions
where extra='spam'
{"headers": ["post_id", "action_date"],
"values": [
[2, "2019-07-04"],
[4, "2019-07-04"],
[3, "2019-07-02"]]}
- 跟 removals 连接,计算 remove 的比例,外层再计算 avg 平均
# Write your MySQL query statement below
select round(avg(percent), 2) average_daily_percent
from
(select count(remove_date)/count(*)*100 percentfrom(select distinct post_id, action_datefrom Actionswhere extra='spam') t left join Removals rusing(post_id)group by action_date
) t
我的CSDN博客地址 https://michael.blog.csdn.net/
长按或扫码关注我的公众号(Michael阿明),一起加油、一起学习进步!
LeetCode MySQL 1132. 报告的记录 II相关推荐
- LeetCode MySQL 1113. 报告的记录
文章目录 1. 题目 2. 解题 1. 题目 动作表:Actions +---------------+---------+ | Column Name | Type | +------------- ...
- 【Leetcode】552. 学生出勤记录 II
552. 学生出勤记录 II 题目描述 解题思路 题目描述 可以用字符串表示一个学生的出勤记录,其中的每个字符用来标记当天的出勤情况(缺勤.迟到.到场).记录中只含下面三种字符: 'A':Absent ...
- LeetCode MySQL 1587. 银行账户概要 II
文章目录 1. 题目 2. 解题 1. 题目 表: Users +--------------+---------+ | Column Name | Type | +--------------+-- ...
- LeetCode MySQL 1225. 报告系统状态的连续日期(date_sub + over)
文章目录 1. 题目 2. 解题 1. 题目 Table: Failed +--------------+---------+ | Column Name | Type | +------------ ...
- Leetcode|MySQL|数据库刷题记录(601~627)
目录 601. 体育馆的人流量 602. 好友申请 II :谁有最多的好友 603. 连续空余座位 607. 销售员 608. 树节点 610. 判断三角形 612. 平面上的最近距离 613. 直线 ...
- LeetCode MySQL 1174. 即时食物配送 II
文章目录 1. 题目 2. 解题 1. 题目 配送表: Delivery +-----------------------------+---------+ | Column Name | Type ...
- 【每日SQL打卡】DAY 16丨报告的记录 II【难度中等】
活动介绍: 「数据仓库技术交流群」已经正式启动每日SQL打卡,帮助大家扎实基础,努力工作之余,别忘了自我提升.另有超多CSDN 周边礼物相送. 欢迎报名和邀请小伙伴参与,一个人可能走得很快,但一群人 ...
- LeetCode MySQL解题目录
已完成的 LeetCode MySQL 数据库题目.点击查看我的 LeetCode 算法解题目录. 已解决 123/123 - 简单 54 中等 51 困难 18 前置入门学习 MySQL 基本查询. ...
- LeetCode——552. 学生出勤记录 II(Student Attendance Record II)[困难]——分析及代码(Java)
LeetCode--552. 学生出勤记录 II[Student Attendance Record II][困难]--分析及代码[Java] 一.题目 二.分析及代码 1. 动态规划 (1)思路 ( ...
最新文章
- 统一沟通-技巧-11-Lync-联盟-1-MSN
- 微信小程序开发——小程序API获取用户位置及异常流处理完整示例
- I/O复用之 EPOLLONESHOT 事件
- 20 WM配置-策略-定义出库排序序列(拣配)
- VMware虚拟机三种网络模式的区别
- libevent备忘
- Numpy Scalars(标量)
- Log4net使用指南[转]
- 健康医药企业营销数字化心法100条
- 仿淘宝中心轮播图 JS[代码+详细讲解+效果图]
- 我为何从开发转测试,并坚持了16年?
- FSR薄膜压力传感器使用教程
- 图新地球(LSV)常见问题汇总(图源、全景、倾斜摄影、点云应用、图新地球模糊等等)------持续更新
- 【 无线网络技术 】实验一、构建无线网络实验环境
- Photoshop各历史版本回顾以及系统要求
- Ubuntu16.04+win10+Fabric
- 浏览器全屏和pc显示器全屏
- 【历史上的今天】3 月 15 日:世界上第一个互联网注册域名;Adobe 并购 Aldus;Skype 取代 MSN
- 学习CBAP业务分析是每个BA从业者的必经阶段——SITC上海信息化培训中心
- 计算机为什么检测不到u盘启动项,bios设置u盘为第一启动项后检测不到怎么办
热门文章
- 移除项目中的CocoaPods
- sc.next在java什么意思_sc.next() 和 nextLine 的原理
- java连接phpstudy_PHPStudy快速自动搞定所有配置文件
- [leetcode] 14. 最长公共前缀
- PAT (Basic Level) Practise 1045 快速排序(离散化+主席树区间内的区间求和)
- git 发布android 系统版本 修改版本型号 查看指定文件的修改记录
- ASP.NET MVC URL重写与优化(进阶篇)-继承RouteBase玩转URL(转)
- Readonly 与Const
- RocksDB事务实现TransactionDB分析
- 在一个list中增加一个节点