复杂的MySQL查询,变量填充

时间:2012-08-16 21:25:26

标签: mysql

我有一个包含列的表:

AnswerID,OwnerUserID,CreationDate

如何使用OwnerUserID已发布的答案总数填充标题为(AnswersPosted)的第四列,直到为该AnswerID列出CreationDate?

编辑:

下面是表格应该是什么样子的示例。 (抱歉,我刚刚加入时无法发布图片...)我有兴趣让最后一栏显示所有正确的数字。谢谢!

enter image description here

1 个答案:

答案 0 :(得分: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