sql - 在用户级别检索与每个标签对应的答案总数
问题描述
我正在尝试创建一个查询,以查找与每个标签相对应的答案总数(我在 stackoverflow 中给出的)。
通过这个,我能够找到我接受的、得分的和不计分的答案的总数。
使用这个,我可以找到每个标签有多少赞成票。
我在data.StackExcange中运行了以下查询以获得所需的结果,但没有成功。
这是我的查询:
DECLARE @UserId int = ##UserId##
SELECT --TOP 20
TagName,
count(a.Id) as [Accepted Answers]
from
Posts q
inner join
Posts a
on a.Id = q.AcceptedAnswerId
WHERE
Posts.OwnerUserId = @UserId
a.CommunityOwnedDate is null
and a.OwnerUserId = ##UserId##
and q.OwnerUserId != ##UserId##
and a.postTypeId = 2
GROUP BY TagName
更新1:
我还必须找到与该答案相对应的问题、标题和所有其他标签的 url。
解决方案
如果您正在为每个标签寻找COUNT()
您接受的答案,那么
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;
如果您正在寻找每个标签的所有答案,那么
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;
更新:
为了您的更新
我还需要找到问题的 url、标题和与该答案相关的所有其他标签。
您可以将查询用作子查询并将其与Posts
表连接以获取其他列。
推荐阅读
- wordpress - 移动设备上的 Wordpress Boostrap NavMenu 显示后隐藏
- javascript - 如何以角度调用具有函数的父布尔值
- android - 登录后,显示“不幸的是,应用程序已停止”
- javascript - bundle.js 是如何将样式内容注入 index.html 的?
- vuetify.js - 无法覆盖 Vuetify 2.1 SASS 变量
- excel - 如何比较两张工作表并使用 VBA 生成新列表?
- r - 如何根据excel csv中的关键字过滤R中的表格?
- django - 使用 git 管理 sqlite 数据库
- android - gradle中的“com.google.android.gms ...”和“com.google.firebase ...”有什么区别?
- c# - Zipfile OpenRead throws Access to the path is denied exception in c# uwp app?