0

SEのデータエクスプローラーからの賛成票が最も多いユーザーを見つけようとしています: https://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 件の結果を返します。理由がわかりません。あなたはできる?

4

1 に答える 1

1

実際には、いくつかのテーブルを結合する必要はありません。必要なものはすべて表にありますUser

UPVOTES匿名でDOWNVOTESあるため、数えることはできません。値は既に列UpVotesに存在し、DownVotes

クエリ

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
于 2013-03-31T12:11:54.873 に答える