私は、参加者のテーブルを持っています。各エントリにはプレーヤー、チーム、日付フィールドがあります。私はすべての選手とそれに対応するチームのリストを作りたいので、私はSQL GROUP BY日付が最も高い行を選択してください
SELECT player, COUNT(DISTINCT matchid) matches, team FROM participants GROUP BY player
プレイヤーがチームを切り替える場合は、それがそのプレイヤーのためにランダムな(?)チームが返されますような何かを。最高のdate
フィールドに対応するエントリを選択させる方法はありますか(現在のチームを返します)?私は(SELECT * FROM participants ORDER BY date DESC) x
とparticipants
を置き換えようとしましたが、何も影響を及ぼさないようです。
これまで考えていたのは、MID(MAX(CONCAT(date, '_', team)),12)
を使用していましたが、date
は常に10桁の数字である場合があります。
ここ一致が次に1234567890にチームA(ボブとジョンからなる)とBチーム(ジェームズとロスからなる)との間に再生されたことを示す例示的なデータ
MATCHID PLAYER TEAM DATE
1 Bob Team A 1234567890
1 John Team A 1234567890
1 James Team B 1234567890
1 Ross Team B 1234567890
2 James Team A 1234567891
2 John Team A 1234567891
2 Bob Team B 1234567891
2 Ross Team B 1234567891
ですボブとジェームスはチームを切り替え、後日別の試合をした。私はしかし、ボブ・ジェームスのエントリが正しいチームを表示することを保証する方法はないように思わ以下
PLAYER TEAM MATCHES
Bob Team B 2
John Team A 2
James Team A 2
Ross Team B 2
のようなデータを受信したいと思います。
サンプルデータと期待される結果を表示してください – TheGameiswar
投稿にテーブルを含めることはできませんか? – riv
質問を改善する方法については、このリンクをクリックしてください.https://spaghettidba.com/2015/04/24/how-to-post-at-sql-question-on-a-public-forum/ – TheGameiswar