每个用户超过6个月的SQL平均帖子数

时间:2014-01-24 19:07:54

标签: mysql sql database relational-database

所以我有这个要求,这只需要在2个表,wall_posts和注释之间发生:

  1. 过去六年中,有多少UNIQUE用户在他们的墙上张贴了 个月
  2. 每位用户的平均帖子数是多少
  3. 墙上帖子的评论平均数是多少(这将是JOIN评论表)
  4. 这是我到目前为止所做的:

    SELECT
            DISTINCT user_id,
            COUNT(post_id) as pc
    FROM diaries_posts
    WHERE post_date < DATE_SUB( NOW( ) , INTERVAL -6 MONTH )
    GROUP BY user_id
    

    其中我很确定平均部分(第二部分)是错误的,因为我没有得到每个DISTINCT_USER的AVG_NO_OF_POST,而是每个DISTINCT_USER得到TOTAL_NO_OF_POSTS。任何想法?

    此外,我想知道第三部分是否会成为整个表的重复值,或者是否存在我缺少的此要求中的某些内容。墙贴的平均回复数量是单一值,不是吗?

    感谢您的帮助。

2 个答案:

答案 0 :(得分:0)

select user_id, AVG(post_id) as pc
from diaries_posts
where post_date < DATE_SUB(NOW(), INTERVAL - 6 MONTH)
group by user_id

答案 1 :(得分:0)

试试这个:

SELECT count(DISTINCT user_id) as NumUsers,
       count(*) / COUNT(distinct post_id) as AvgPostsPerUsers
FROM diaries_posts dp
WHERE post_date < DATE_SUB( NOW( ) , INTERVAL -6 MONTH );

这给出了前两个答案。你的问题没有解释comments的来源,所以我忽略了第三部分。