我有一個表,看起來像這樣的分組...的MySQL的細節
user_id, match_id, points_won
1 14 10
1 8 12
1 12 80
2 8 10
3 14 20
3 2 25
我想寫一個MySQL腳本,拉回積分最高的用戶在一場比賽中贏得了和包括match_id在結果 - 換句話說...
user_id, match_id, max_points_won
1 12 80
2 8 10
3 2 25
當然,如果我沒有需要match_id我只是做...
select user_id, max(points_won)
from table
group by user_id
但是,只要我將match_id添加到「select」和「group by」中,我對每個匹配都有一行,如果我只將match_id添加到「select」(而不是「group by」),不正確地與points_won相關。
理想我不想做下面可能是因爲它不感到特別安全(例如,如果用戶已經贏得了多個匹配點相同數量的)...
SELECT t.user_id, max(t.points_won) max_points_won
, (select t2.match_id
from table t2
where t2.user_id = t.user_id
and t2.points_won = max_points_won) as 'match_of_points_maximum'
FROM table t
GROUP BY t.user_id
是這個問題還有更多優雅的選擇嗎?
謝謝戈登 - 黑客或不,實際上正是我想要的! – d3wannabe