我有桌子,有火柴,我在那里存放两个队之间的足球比赛,本地队和访客。然后我还存储如果本地队赢了,localwin,作为tinyint(1)-1如果他们赢了,0如果他们输了。我的桌子看起来像这样
local visitor localwin
Manchester Barcelona 1
Manchester Real Madrid 0
Real Madrid Bayern 0
Bayern Barcelona 1
我如何计算不同球队获胜的次数?
我知道我可能需要清点和分组,但我不知道该怎么做。
最佳答案
您可以使用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
表达式可能需要一些调整。