私は実際に試合、ID、チーム1、チーム2、日付のテーブルを持っています.チーム1が試合の勝者である場合、1つのチームが過去10試合で何勝したかを取得しようとしています.
この方法でチームの最後の 10 試合を取得できましたが、勝利数を取得する方法が見つかりません
SELECT *
FROM matches
WHERE time1 = 13 OR time2 = 13
ORDER BY data DESC, id ASC
LIMIT 10
私は実際に試合、ID、チーム1、チーム2、日付のテーブルを持っています.チーム1が試合の勝者である場合、1つのチームが過去10試合で何勝したかを取得しようとしています.
この方法でチームの最後の 10 試合を取得できましたが、勝利数を取得する方法が見つかりません
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
勝者用に別の列を追加することをお勧めしますが、これがあなたが探しているものだと思います...そしてスペルチームは正しい.
を使用しCOUNT
ます。ところで、あなたの「日付」列は実際に「日付」という名前ですか?
SELECT count(*)
FROM matches
WHERE time1 = 13
これは、特定のチームの勝利数のみを返します。結果テーブルが必要な場合は、ブライアンの答えを使用してください:
SELECT time1, COUNT(*) AS wins
FROM matches
GROUP BY time1
ORDER BY 2 DESC
次のようなものかもしれません:
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