我有桌子,有火柴,我在那里存放两个队之间的足球比赛,本地队和访客。然后我还存储如果本地队赢了,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表达式可能需要一些调整。

10-08 04:43