本文主要是介绍每日一题-71(每个帖子的评论数),希望对大家解决编程问题提供一定的参考价值,需要的开发者们随着小编来一起学习吧!
题71:
根据下表编写 SQL 语句以查找每个帖子的评论数。
其中:上表没有主键, 所以可能会出现重复的行;每行可以是一个帖子或对该帖子的评论;如果是帖子的话,parent_id 就是 null;对于评论来说,parent_id 就是表中对应帖子的 sub_id。
解题思路:
(1)首先我们需要找到所有帖子的 id,通过题目我们知道所有帖子的 parent_id 为 null,因此我们可以使用 WHERE 查询找到所有的帖子;
(2)然后根据找到的帖子的 post_id 找到对应的 sub_id,采用左连接;
(3)将上一步得到的表使用 GROUP BY 将所有的 post_id 分为一组,使用 COUNT(sub_id) 计算数量;
(4)注意最后需要对 post_id 进行排序。
SELECT post_id, COUNT(sub_id) AS number_of_comments
FROM (SELECT DISTINCT post.sub_id AS post_id, sub.sub_id AS sub_idFROM Submissions postLEFT JOIN Submissions subON post.sub_id = sub.parent_idWHERE post.parent_id is null
) T
GROUP BY post_id
ORDER BY post_id ASC;
这篇关于每日一题-71(每个帖子的评论数)的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!