テーブルを2つの列で並べ替えようとしていますが、それぞれに異なる重みが付いています。1つ目はです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)
すると、クエリは投票数が最も多いレコードのみを返します。これは単一のクエリで実行できますか?