我实际上有一个比赛表,id,team1,team2,date 其中team1 是比赛的获胜者,我试图获得一支球队在过去十场比赛中的胜利次数。
我设法通过这种方式获得了球队的最后十场比赛,但我找不到获得获胜次数的方法
SELECT *
FROM matches
WHERE time1 = 13 OR time2 = 13
ORDER BY data DESC, id ASC
LIMIT 10
我实际上有一个比赛表,id,team1,team2,date 其中team1 是比赛的获胜者,我试图获得一支球队在过去十场比赛中的胜利次数。
我设法通过这种方式获得了球队的最后十场比赛,但我找不到获得获胜次数的方法
SELECT *
FROM matches
WHERE time1 = 13 OR time2 = 13
ORDER BY data DESC, id ASC
LIMIT 10
试试这个:
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
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
我建议为获胜者添加一个单独的列,但我认为这就是您正在寻找的......并且拼写团队正确。
可能是这样的:
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
使用COUNT
. 顺便问一下,您的“日期”列实际上是否命名为“日期”?
SELECT count(*)
FROM matches
WHERE time1 = 13
这将只返回给定团队的获胜次数。如果您需要结果表,请使用Brian 的答案:
SELECT time1, COUNT(*) AS wins
FROM matches
GROUP BY time1
ORDER BY 2 DESC