2012-03-15 8 views
0

からわずか最高のカウントを選択は、あなたがこのようなテーブルがあるとします。MySQLの - それぞれ異なる列タイプ

id user score

それは各userはN scoreさんを持つことができ、ユーザのスコアのダンプです。

どのように各ユーザーに最高のスコアを選択しますか?あなたが必要なものを取得する必要があります

+0

スコアはスコアのリストですか、または各行に別々のスコアと重複ユーザーがありますか? –

+0

これまでにどのようなクエリを試しましたか?テーブル構造も投稿できますか? –

答えて

4
SELECT user,max(score) 
FROM mytable 
GROUP BY user 
+0

あなたは私を打つ。あなたの答えはおなじみです。 – swasheck

+1

私は答えが短く、順番がないので、時間がかかりませんでした:) – kappa

+0

早い鳥がチェックを取得します!あなたの両方のために投票しました;)ありがとう! – ina

3
select user, max(score) as HighScore 
from table 
group by user 
order by max(score); 

EDIT:MAX(スコア)に 追加しまし文の終了

1
SELECT user, MAX(score) FROM [TABLE] GROUP BY user 
+0

'*'はここでは機能しません。なぜなら、id、scoreが 'group by'リストになく、2)リストに入れば、スコアが集計されます。テーブルには 'max(score)'の追加フィールドがあり、 'score'になります。 – swasheck

-1

代替スコアリストを反復処理し、最高を選ぶためにPHPを使用することです。

+1

私は、これがアプリケーション上で生成するオーバーヘッドについて、DBMSを使用しているのに比べて見てみたいと考えています。 – swasheck

+0

テーブルがスコアのリストとして 'score'で設定されていれば、オーバーヘッドに関係なく良いオプションになります。たとえば、 'id = 1 user = 5 score =" 15,20,35,75 "'となります。私が間違っていないなら、MAXはこのケースでは動作しませんでしたか? – DACrosby

+0

どこから来ているのか分かります。私はこの状況で実際にデータモデルとは思えません。少なくとも、それは私が得る印象ではありません。さらに、私はそれが使用されている技術を考えると、それが最良の選択肢であるかどうかはわかりません。 – swasheck

関連する問題