计算按足球队分组的获胜次数

时间:2019-02-16 20:35:54

标签: mysql sql select count

我有一张桌子,比赛,我在其中存储两队 local visitor 之间的足球比赛。然后,我还将本地团队是否赢得了 localwin ,存储为tinyint(1)-如果赢得则为1,如果失败则为0。我的桌子看起来像这样

local           visitor       localwin
Manchester      Barcelona         1
Manchester      Real Madrid       0
Real Madrid     Bayern            0
Bayern          Barcelona         1

我如何计算不同球队获胜的次数?

我知道我可能需要一个COUNT和一个GROUP BY,但是我不确定该怎么做。

2 个答案:

答案 0 :(得分:2)

您可以使用case表达式产生获胜者,然后将其分组并计算出现次数:

SELECT   CASE localwin WHEN 1 THEN local ELSE visitor END, COUNT(*)
FROM     matches
GROUP BY CASE localwin WHEN 1 THEN local ELSE visitor END

注意:
该查询假设如果当地团队没有获胜,则访客获得了胜利,即没有平局。如果可以选择绘图,则case表达式可能需要进行一些调整。

答案 1 :(得分:2)

此:

positions = []
i=0
for num in nums:
   pos = text.find(num, i)
   positions.append(num + ' : ' + str(pos))
   i =+ pos + len(num)

print(positions)
['11 : 0', '20 : 44', '2019 : 49', '11 : 68', '20 : 153', '2019 : 158']

还将包括赢得select t.team, count(m.localwin) wins from ( select local team from matches union select visitor team from matches ) t left join matches m on t.team = (case m.localwin when 1 then m.local else m.visitor end) group by t.team 的球队。
参见demo