クエリでやりたいことを実行するのに苦労しています...
1 つの UserId: 2140173 に対して実行すると、正常に動作しているようです
Select UserId,
(Select Count(VoteTypeId) From SuggestedEditVotes where UserId = 2140173) as 'Total',
(Select Count(VoteTypeId) From SuggestedEditVotes where UserId = 2140173 and VoteTypeId = 2) As 'Accepted',
(Select Count(VoteTypeId) From SuggestedEditVotes where UserId = 2140173 and VoteTypeId = 3) As 'Rejected'
from SuggestedEditVotes
inner join Users on SuggestedEditVotes.UserId = Users.Id
where Users.Reputation > 2000 and UserId = 2140173
group by UserId
having Count(VoteTypeId) > 0
戻ります
UserId Total Accepted Rejected
2140173 2230 1145 1085
しかし、それを少し変更して、評判が 2000 を超えるすべてのユーザーに対して実行しようとすると、正しい結果が得られません:/
where
句に何を入れればよいかわからないため、サブ Select ステートメントで立ち往生しています..
これは私が試したものですが、合計を返し、各ユーザーIDのカウントにしたいです
Select UserId,
(Select Count(VoteTypeId) From SuggestedEditVotes) as 'Total',
(Select Count(VoteTypeId) From SuggestedEditVotes where VoteTypeId = 2) As 'Accepted',
(Select Count(VoteTypeId) From SuggestedEditVotes where VoteTypeId = 3) As 'Rejected'
from SuggestedEditVotes
inner join Users on SuggestedEditVotes.UserId = Users.Id
where Users.Reputation > 2000
group by UserId
having Count(VoteTypeId) > 0
誰でも助けることができますか?