我有一张桌子,比赛,我在其中存储两队 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,但是我不确定该怎么做。
答案 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