2012-08-16 103 views
-1

我与列的表:复杂的MySQL查询,变人口

AnswerID,OwnerUserID,CreationDate

如何填充标题(AnswersPosted)与总人数的答案是OwnerUserID有第四列发布到为该AnswerID列出的CreationDate?

编辑:

下面是一个表应该看起来像什么样子的例子。 (对不起,自从我刚刚加入后,我无法发布图片...)我很想让最后一列显示所有正确的数字。谢谢!

enter image description here

+1

你可以发布一些示例数据和预期的结果? – Taryn 2012-08-16 21:30:00

回答

2

使用此解决方案:

SELECT a.AnswerID, 
     a.OwnerUserID, 
     a.CreationDate, 
     b.cnt AS AnswersPosted 
FROM tbl a 
JOIN (
     SELECT a.OwnerUserID, 
       a.CreationDate, 
       COUNT(b.OwnerUserID) AS cnt 
     FROM  tbl a 
     LEFT JOIN tbl b ON a.OwnerUserID = b.OwnerUserID 
         AND b.CreationDate < a.CreationDate 
     GROUP BY a.OwnerUserID, 
       a.CreationDate 
     ) b ON a.OwnerUserID = b.OwnerUserID 
      AND a.CreationDate = b.CreationDate 

SQLFiddle Demo