每日一题-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_id
    FROM Submissions post
    LEFT JOIN Submissions sub
    ON post.sub_id = sub.parent_id
    WHERE post.parent_id is null
) T
GROUP BY post_id
ORDER BY post_id ASC;

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值