私がやろうとしていることのアイデアをあなたに与えるために。単純化されたテーブル構造は次のようになります。
homeTeamName | awayTeamName | homeTeamGoals | awayTeamGoals
-----------------------------------------------------------
Team1 | Team2 | 4 | 3
Team1 | Team3 | 0 | 1
Team3 | Team2 | 0 | 0
データはサッカーの試合からのものです。私がやろうとしているのは、「フォーム」チーム、つまり最も多くのゲームに勝ったチームを取得することです (上記の表にはさらに多くのデータが含まれていると仮定します)。以下に示すように、特定のチームの「勝利数」を取得するクエリはかなり簡単です。
SELECT COUNT(*) as winCount FROM matches_new
WHERE (
homeTeamName = 'Team1' AND
homeTeamGoals > awayTeamGoals
) OR (
awayTeamName = 'Team1' AND
awayTeamGoals > homeTeamGoals
)
ORDER BY winCount DESC LIMIT 1
そのクエリは、特定のチームが持つ「勝利」の量を返します。ここで、クエリですべてのチームをチェックし、「勝利」が最も多いチームの名前と「勝利」の数 (勝利数) を返すようにします。
私は本当にこれを行う方法の手がかりがありません! 私はたくさんの検索を試みましたが、このタイプのタスクをどのように説明するかを考えたり、似たようなものを考えたりすることさえ困難です. 私の問題は、値が何に等しくなければならないかについて具体的に説明せずに WHERE 句を実行する方法がわからないという事実に起因しているようです。
ありがとう。