私はそうのようなテーブルがあります。私は、この結果は(この特定の例のために、のobject_id 1及び2は、グループの一部である、他の場所で定義されたいロールアップコラム - パート1
object_id | vote
1 | 2
1 | -1
1 | 5
2 | 3
2 | 1
3 | 4
3 | -2
を合計は常に= 1のobject_id 3未使用のグループの一部であるように、と私はnormalized_scoreを探しています):。
object_id | normalized_score
1 | 6/10
2 | 4/10
ここ10がために票の合計です[15:05を追加しました] object_id in(1,2)。 (1,2)を思いつくための論理は他にもありますが、私は人々がその部分について心配する必要がないように、最もクリーンな質問をしようとしていました。
[追加された午後3時10分]コメントの中で指摘されているように、オブジェクトの1つのスコアが0未満の場合、問題が発生します。 "outcome_idのスコアが-xであり、それがセットの最小スコアであれば、最小スコアをゼロにするためにすべてのスコアにxを加える"というルールがあります。私はSQLの外では自分の時間にこれを行うことができます - 誰かがSQLでそれに取り組もうとするカホンを持っている場合のみボーナスです。
私が自己結合をすると、私は合計を得ることができます。私は正規化された合計を取得する方法を把握することはできません。理想的には、これはMySQL 5.xとSqlite3の両方で動作します。そうでなければ、私は2つの別々のクエリでこれを行うことができ、ちょうど後処理で作業を行います。
「10」はどこに入ってきますか? –
投票が10を超えていると思われる場合、どのように否定的な投票を許可できますか? –
私は申し訳ありません10は(1,2)のobject_idの票の合計です。質問を更新します –