我有一個表中的兩列:按平均評分排序 - 如何加快速度?
rating_total integer
rating_count integer
rating_total是總房價的總和,並且等級數是多少總評級。我想按平均價格訂購:
ORDER BY (rating_total/rating_count) DESC, id ASC
我應該爲average_rate
創建單獨的列嗎?或者可以創建一些索引來加快速度?
我已經成功地創建索引這樣的:
CREATE INDEX "posts-avg-rating-index"
ON "Posts" (("rating_total"::float/(CASE "rating_count" WHEN 0 THEN NULL ELSE "rating_count" END)) DESC NULLS LAST, id DESC);'
這對於訂購這樣工作的:
ORDER BY (("rating_total"::float/(CASE "rating_count" WHEN 0 THEN NULL ELSE "rating_count" END)) DESC NULLS LAST, id DESC)
爲什麼不'AVG(等級)'(假設你有一個等級列)? – 2015-02-23 09:22:15
你應該使用單獨的'列'或採取[看](http://stackoverflow.com/a/4068083/2749470)對這個答案 – 2015-02-23 09:22:21
@JackManey我沒有執行任何分組,每一行已經計算出rating_total和rating_count 。 – user606521 2015-02-23 09:25:36