1

私は実際に試合、ID、チーム1、チーム2、日付のテーブルを持っています.チーム1が試合の勝者である場合、1つのチームが過去10試合で何勝したかを取得しようとしています.

この方法でチームの最後の 10 試合を取得できましたが、勝利数を取得する方法が見つかりません

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

を使用しCOUNTます。ところで、あなたの「日付」列は実際に「日付」という名前ですか?

SELECT count(*)
FROM matches
WHERE time1 = 13

これは、特定のチームの勝利数のみを返します。結果テーブルが必要な場合は、ブライアンの答えを使用してください:

SELECT time1, COUNT(*) AS wins
FROM matches
GROUP BY time1
ORDER BY 2 DESC
于 2013-11-13T21:01:00.527 に答える
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 に答える