Retrieve count of total no of answers corresponding to each tag at user level

前端 未结 2 1893
太阳男子
太阳男子 2021-01-29 04:08

I am trying to create a query, to find the count of total number of answers (that I have give in stackoverflow) corresponding to each tag.

Through this, I am able to fin

相关标签:
2条回答
  • 2021-01-29 04:50

    Below query finds the total number of answers against each tag for a user. It does not consider the self-answered questions of the user, as it can give little additional count.

    --Self answered questions dont count
    select t.TagName, COUNT(q.Id) as countofAnsweredQuestions
    from Posts q
    inner join PostTags AS pt
    ON pt.PostId = q.Id
    inner join Posts a
    on a.parentId = q.Id
    inner join Tags as t
    on pt.tagId = t.Id
    where q.CommunityOwnedDate is null and q.ClosedDate is null 
      and a.OwnerUserId = ##UserId##
      and q.OwnerUserId != ##UserId##
      and a.postTypeId = 2
    GROUP BY t.TagName
    ORDER BY countofAnsweredQuestions desc
    

    I have created permanent link for the query

    0 讨论(0)
  • 2021-01-29 05:00

    If you're looking for the COUNT() of your accepted answers for each tag then

    SELECT T.TagName, COUNT(Q.Id) CntAcceptedAnswer
    FROM Posts Q
    JOIN PostTags PT ON Q.Id = PT.PostId
    JOIN Tags T ON T.Id = PT.TagId
    JOIN Posts A ON Q.AcceptedAnswerId = A.Id
    WHERE A.OwnerUserId = <YourUserId>
          AND A.PostTypeId = 2
          AND Q.ClosedDate IS NULL
          AND Q.DeletionDate IS NULL
    GROUP BY T.TagName;
    

    If you're looking for all your answers for each tag then

    SELECT T.TagName, COUNT(A.Id) Cnt
    FROM Posts A 
    JOIN Posts Q ON Q.Id = A.ParentId
    JOIN PostTags PT ON Q.Id = PT.PostId
    JOIN Tags T ON T.Id = PT.TagId
    WHERE A.OwnerUserId = <YourUserId>
    -- You can filter closed and deleted posts here as well if needed
    GROUP BY T.TagName;
    

    UPDATE:

    For your update

    I also need to find url of the questions, title and all the other tags related to that answer.

    You could use the query as a subquery and join it with Posts table to get the other columns as well.

    0 讨论(0)
提交回复
热议问题