文章目录

  • 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相关推荐

  1. LeetCode MySQL 1113. 报告的记录

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

  2. 【Leetcode】552. 学生出勤记录 II

    552. 学生出勤记录 II 题目描述 解题思路 题目描述 可以用字符串表示一个学生的出勤记录,其中的每个字符用来标记当天的出勤情况(缺勤.迟到.到场).记录中只含下面三种字符: 'A':Absent ...

  3. LeetCode MySQL 1587. 银行账户概要 II

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

  4. LeetCode MySQL 1225. 报告系统状态的连续日期(date_sub + over)

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

  5. Leetcode|MySQL|数据库刷题记录(601~627)

    目录 601. 体育馆的人流量 602. 好友申请 II :谁有最多的好友 603. 连续空余座位 607. 销售员 608. 树节点 610. 判断三角形 612. 平面上的最近距离 613. 直线 ...

  6. LeetCode MySQL 1174. 即时食物配送 II

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

  7. 【每日SQL打卡】​​​​​​​​​​​​​​​DAY 16丨报告的记录 II【难度中等】

     活动介绍: 「数据仓库技术交流群」已经正式启动每日SQL打卡,帮助大家扎实基础,努力工作之余,别忘了自我提升.另有超多CSDN 周边礼物相送. 欢迎报名和邀请小伙伴参与,一个人可能走得很快,但一群人 ...

  8. LeetCode MySQL解题目录

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

  9. LeetCode——552. 学生出勤记录 II(Student Attendance Record II)[困难]——分析及代码(Java)

    LeetCode--552. 学生出勤记录 II[Student Attendance Record II][困难]--分析及代码[Java] 一.题目 二.分析及代码 1. 动态规划 (1)思路 ( ...

最新文章

  1. 统一沟通-技巧-11-Lync-联盟-1-MSN
  2. 微信小程序开发——小程序API获取用户位置及异常流处理完整示例
  3. I/O复用之 EPOLLONESHOT 事件
  4. 20 WM配置-策略-定义出库排序序列(拣配)
  5. VMware虚拟机三种网络模式的区别
  6. libevent备忘
  7. Numpy Scalars(标量)
  8. Log4net使用指南[转]
  9. 健康医药企业营销数字化心法100条
  10. 仿淘宝中心轮播图 JS[代码+详细讲解+效果图]
  11. 我为何从开发转测试,并坚持了16年?
  12. FSR薄膜压力传感器使用教程
  13. 图新地球(LSV)常见问题汇总(图源、全景、倾斜摄影、点云应用、图新地球模糊等等)------持续更新
  14. 【 无线网络技术 】实验一、构建无线网络实验环境
  15. Photoshop各历史版本回顾以及系统要求
  16. Ubuntu16.04+win10+Fabric
  17. 浏览器全屏和pc显示器全屏
  18. 【历史上的今天】3 月 15 日:世界上第一个互联网注册域名;Adobe 并购 Aldus;Skype 取代 MSN
  19. 学习CBAP业务分析是每个BA从业者的必经阶段——SITC上海信息化培训中心
  20. 计算机为什么检测不到u盘启动项,bios设置u盘为第一启动项后检测不到怎么办

热门文章

  1. 移除项目中的CocoaPods
  2. sc.next在java什么意思_sc.next() 和 nextLine 的原理
  3. java连接phpstudy_PHPStudy快速自动搞定所有配置文件
  4. [leetcode] 14. 最长公共前缀
  5. PAT (Basic Level) Practise 1045 快速排序(离散化+主席树区间内的区间求和)
  6. git 发布android 系统版本 修改版本型号 查看指定文件的修改记录
  7. ASP.NET MVC URL重写与优化(进阶篇)-继承RouteBase玩转URL(转)
  8. Readonly 与Const
  9. RocksDB事务实现TransactionDB分析
  10. 在一个list中增加一个节点