1

我实际上有一个比赛表,id,team1,team2,date 其中team1 是比赛的获胜者,我试图获得一支球队在过去十场比赛中的胜利次数。

我设法通过这种方式获得了球队的最后十场比赛,但我找不到获得获胜次数的方法

SELECT * 
FROM matches
WHERE time1 = 13 OR time2 = 13 
ORDER BY data DESC, id ASC 
LIMIT 10
4

4 回答 4

3

试试这个:

SELECT team1, COUNT(team1) as 'wins'
FROM matches
WHERE team1 = 13 or team2 = 13
GROUP BY team1
LIMIT 10

它应该给你这样的结果

team1 | wins
=====   ====
Bears    5
Tigers   3
Cubs     2
于 2013-11-13T20:58:30.107 回答
2

http://www.w3schools.com/sql/sql_func_count.asp

SELECT time1, COUNT(team1) AS 'wins'
FROM matches
WHERE time1 = 13 OR time2 = 13 
ORDER BY data DESC, id ASC 
LIMIT 10
GROUP BY wins

我建议为获胜者添加一个单独的列,但我认为这就是您正在寻找的......并且拼写团队正确。

于 2013-11-13T20:57:48.433 回答
1

可能是这样的:

SELECT COUNT(time1) 
FROM matches
WHERE time1 = 13 OR time2 = 13 
ORDER BY data DESC, id ASC 
GROUP BY time1 //GROUP BY WINNER TEAM
LIMIT 10
于 2013-11-13T20:54:11.673 回答
1

使用COUNT. 顺便问一下,您的“日期”列实际上是否命名为“日期”?

SELECT count(*)
FROM matches
WHERE time1 = 13

这将只返回给定团队的获胜次数。如果您需要结果表,请使用Brian 的答案

SELECT time1, COUNT(*) AS wins
FROM matches
GROUP BY time1
ORDER BY 2 DESC
于 2013-11-13T21:01:00.527 回答