2014-01-24 41 views
0

所以我有這個要求,這個只需要2個表,wall_posts和評論之間發生:SQL職位平均數每用戶6個月以上

  1. 的唯一身份用戶在過去在他們的牆上貼6月
  2. 什麼是每個用戶的塗鴉牆的平均數
  3. 什麼是在牆壁上發表評論theaverage號(這將是JOIN comments表)

這是我到目前爲止有:

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每DISTINCT_USER AVG_NO_OF_POST但TOTAL_NO_OF_POSTS。有任何想法嗎?

另外我想知道第三部分是否會成爲整個表的重複值,或者是否存在這個需求中我缺少的東西。回覆牆貼的平均數量將是單個值,不是嗎?

感謝您的幫助。

回答

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 
+0

我已經嘗試過,但我不可能是正確的值: USER_ID 0 avg_posts 15239.0000, user_id說明66個avg_posts 740.0000, user_id說明73個avg_posts 2923.8000? – Aayush

+0

這是我們選擇的每個用戶的平均帖子數量? – Aayush

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來自哪裏,所以我忽略了第三部分。