前言
练习sql语句,所有题目来自于力扣(https://leetcode.cn/problemset/database/)的免费数据库练习题。
今日题目:
1113.报告的记录
表:Actions
列名 | 类型 |
---|---|
user_id | int |
post_id | int |
action_date | date |
action | enum |
extra | varchar |
此表可能会有重复的行。
action 字段是 ENUM 类型的,包含:(‘view’, ‘like’, ‘reaction’, ‘comment’, ‘report’, ‘share’)
extra 包含关于 action 的可选信息,例如举报的原因或反馈的类型。当 action 为 ‘report’ 时 extra 不会为 NULL。
编写解决方案,针对每个举报原因统计昨天的举报帖子数量。假设今天是 2019-07-05 。
我那不值一提的想法:
- 首先梳理表内容,题干一共给了一张动作表,记录了用户id,帖子id,发帖日期,发帖类型以及举报后反馈的信息。
- 其次分析需求,需要针对每个举报原因,统计昨日违规帖子数量.假设今天是2019-07-05
- 我们的思路首先肯定是需要筛选日期到2019-07-04
- 其次就需要判断action是report的帖子
- 然后通过extra分组求post_id的数量得到最终的结果
select extra report_reason,count(distinct post_id) report_count
from Actions
where action_date = "2019-07-04" and action = "report"
group by extra
结果:
总结:
能运行就行。