【问题标题】:Generalize SQL query to include data for all Users通用 SQL 查询以包含所有用户的数据
【发布时间】:2015-05-08 10:10:51
【问题描述】:

This 流行的data.stackexchange.com 查询允许我查询用户的所有标签以及他们的赞成票。

例如对于用户22656,输出如下:

TagName, Upvotes
c#, 147346
java, 84373
.net, 49952

我想为所有(或大部分)用户提取此信息。有人可以帮我概括一下这个查询吗?

示例输出可能是:

user1, {"tagA": 6, "tagB": 4, ...}
user2, {"tagX": 7, "tagY": 3, ...}
...
userN, {"tagB": 3, "tagA": 1, ...}

【问题讨论】:

    标签: sql sql-server data.stackexchange.com


    【解决方案1】:
    SELECT Posts.OwnerUserId,
           TagName,
           COUNT(*) AS UpVotes 
    FROM Tags
        INNER JOIN PostTags ON PostTags.TagId = Tags.id
        INNER JOIN Posts ON Posts.ParentId = PostTags.PostId
        INNER JOIN Votes ON Votes.PostId = Posts.Id and VoteTypeId = 2
    GROUP BY Posts.OwnerUserId, TagName 
    ORDER BY UpVotes DESC
    

    【讨论】:

      猜你喜欢
      • 2013-12-28
      • 1970-01-01
      • 2014-02-14
      • 1970-01-01
      • 2021-04-18
      • 2011-10-26
      • 2023-01-02
      • 2022-11-26
      • 2020-12-30
      相关资源
      最近更新 更多