从Data Explorer获取最多upvotes的用户

时间:2013-03-31 11:48:23

标签: sql dataexplorer

我正在尝试找到SE的数据资源管理器中最受欢迎的用户:http://data.stackexchange.com/stackoverflow/query/105658

SELECT
  Users.DisplayName as TheUser,
  COUNT(Votes.Id) as TheUpvotes
FROM
  Votes,
  Users
WHERE
    Votes.VoteTypeId=2
  AND
    Votes.UserId=Users.Id
GROUP BY
  Users.DisplayName

此查询返回0结果。我无法弄清楚为什么。你能吗?

1 个答案:

答案 0 :(得分:1)

实际上你不需要加入一些表格。您需要的只是表User

UPVOTES以及DOWNVOTES是匿名的,这就是为什么你无法计算它。列UpVotesDownVotes

上已存在该值

查询

SELECT [User Link], UpVotes, rn
FROM
(
  SELECT a.ID as [User Link],
         a.UpVotes,
         DENSE_RANK() OVER (ORDER BY a.UpVotes DESC) rn
  FROM   Users a
)x
WHERE  rn <= 10
ORDER BY UpVotes DESC