2012-06-25 3 views
7

申し訳ありませんが、私はユーザーテーブルを持っており、最高点をスコアで除算したユーザーの最大値を取得したいと考えています。以下は、私が探しているもののラフアイデアです:私は、両方の列と分割を追加することに興味はないんだけど、むしろ私はポイントを分割することに興味やユーザーごとに得点MySqlで合計と分割を行う方法

SELECT MAX(SUM(points)/SUM(score)) FROM users 

とロットから最高の価値を引き出す

+4

SELECT MAX(ポイント/スコア)FROMユーザーは機能しませんか? – thesunneversets

答えて

3

たぶん、あなたはサブクエリでこれを行うことができます:あなた何のおそらく

SELECT MAX(points/score) FROM users; 

に短縮することができ

Select max(points_over_Score) 
from 
    (Select points/score AS points_over_score 
    from users); 

、コメントで述べたthesunneversetsとして

、あなたが書かれている説明を」あなたの例がそれに SUMを持っている理由を明らかにしていないので、私はそれを使用しませんでした。

また、このようなコードの質問は、stackoverflow.comの方が適切です。自分の質問にフラグを立てて、モデレーターにマイグレーションを依頼することができます。

+0

実際、それは完全に機能しました。私はそれがポイントとスコアの両方を追加し(すべてのポイントとスコアのように)、それからそこから行くと考えましたが、私が望むようにそれを行うように見えます。もう1つ質問:10進数形式で数値を取得するにはどうすればいいですか?(数字が小数点以下になる場合) –

+0

@Nick:何が完璧に機能しましたか? – FrustratedWithFormsDesigner

+0

あなたが投稿した質問は、私が望むように正確に働きました。私は、そのようなクエリが、列が追加され、最高点/スコアを返すのではなく、スコアで割った結果を返す結果になると思っていたと言っていました。今私はちょうどそれを持っている必要がありますので、結果が小数であれば、丸められているのではなく小数点として返されます。 –

0

あなたがすべての点を合計し、すべての点を合計してから2つに分割する必要がある場合、デザイナーの答えは機能しません。その答えは各点をスコアで除算し、最も高い答えを返します。

これは動作するはずです:

SELECT MAX(sum_points/sum_score) from 
(SELECT SUM(points) as sum_points, SUM(score) as sum_score FROM users) 

ところで、これは "異例" の割合を返します。スコアをポイントで分けたいと思うかもしれません。たとえば、100のうち70が得られた場合、それは70%、またはスコア(70)/ポイント(100)です。

関連する問題