私は2つの列、それぞれ異なる重み付けでテーブルを注文しようとしています。最初はuptime
で、0と1の間の値で、0.3の重み付けをしています。 2番目はvotes
で、負でない整数で、重みは0.7です。順番に最大の列値を使用します。
重み付けには0〜1の間の値を掛ける必要があります。したがって、各行の投票数を任意の行が保持する最大投票数で割ることで投票に使用します。
これは、これまでのところ、私のクエリであり、それはほとんど動作します:
SELECT addr
FROM servers
ORDER BY (0.3 * uptime) +
(0.7 * (votes/100)) DESC
100は、ハードコードされているとvotes
の最大値である必要があります。 MAX(votes)
を使用すると、クエリーは投票数の最も多いレコードのみを返します。単一のクエリでこれを行うことはできますか?
私は彼が 'MAX(投票)によって' 100'を交換したいと思います '、 'MAX(votes)'の 'votes'ではありません。 –
@aF。ありがとう - 間違いを修正しました。 – Sirko
私はなぜそれが理解できませんが、私のdbでは、これは最も多くの票を持つ単一の行を返します。私はphpmyadminから試してみました。照合は重要ですか? – Matt