0
点赞
收藏
分享

微信扫一扫

LeetCode(数据库)- 报告的记录 II


题目链接:​​点击打开链接​​

题目大意:略。

解题思路:略。

AC 代码

-- 解决方案(1)
WITH t1 AS(SELECT a.post_id aid, r.post_id rid, action_date FROM Actions a LEFT JOIN Removals r ON a.post_id = r.post_id WHERE extra = 'spam'),
t2 AS(SELECT COUNT(DISTINCT rid)/COUNT(DISTINCT aid) percent FROM t1 GROUP BY action_date)

SELECT ROUND(AVG(percent) * 100, 2) average_daily_percent
FROM t2

-- 解决方案(2)
SELECT ROUND(AVG(IFNULL(remove.cnt, 0)/total.cnt) * 100, 2) AS average_daily_percent
FROM (
SELECT action_date, COUNT(DISTINCT post_id) AS cnt
FROM actions
WHERE extra = 'spam'
GROUP BY action_date
) total
LEFT JOIN (
SELECT action_date, COUNT(DISTINCT post_id) AS cnt
FROM actions
WHERE extra = 'spam' AND post_id IN (SELECT post_id FROM Removals)
GROUP BY action_date
) remove
ON total.action_date = remove.action_date


举报

相关推荐

0 条评论