我在SQL Server上有一个视图设置,它以这种方式输出记录
id time winnerId
-------------------------------
35 1313114959 1
36 1313116182 1
37 1313116397 1
38 1313116596 2
39 1313116807 1
40 1313116858 1
41 1313116908 1
42 1313117708 2
46 1313118441 1
47 1313118719 1
48 1313120938 1
49 1313123767 1
50 1313159321 3
现在,当我在寻找另一张桌子tbl_players时,我想拿出他的身份并计算他赢了多少场比赛并在右边显示。 tbl_player
id name
-----------
1 jack
2 hugh
3 man
我想以这样的方式结果
id name win
-----------------
1 jack 9
2 hugh 2
3 man 1
必须计算总胜利,通过对视图的引用,我们称之为view_winner
如何编写这样的查询?
答案 0 :(得分:0)
您将两个表连接在一起,并计算每个玩家的赢家ID存在的次数
select p.id, p.name, count(w.winnerid)
from tbl_player p inner join someview w on w.winnerid = p.id
group by p.id, p.name, w.winnerid
答案 1 :(得分:0)
您可以将这些表连接在一起,并group by
计算获胜次数:
select p.id
, p.name
, count(w.winnerId)
from tbl_players p
left join
view_winner w
on p.id = w.winnerId
group by
p.id
, p.name
答案 2 :(得分:0)
您不需要该输出的支点;
select
p.id as id,
p.name as name,
count(*) as win
from view_winner
inner join tbl_player p on (p.id = winnerId)
group by p.id, name
order by p.id