私はPostgreSQLで実行しているSQLクエリを持っています.これは次の行に沿っています:
SELECT DISTINCT items.id,
CASE WHEN items.marker is not null
THEN (items.rating - (educations.cards_done - items.marker))
WHEN items.marker is null
THEN 0
END AS order
FROM items
INNER JOIN educations ON educations.item_id = items.id
WHERE items.active = true
ORDER BY
CASE WHEN items.marker is not null
THEN (items.rating - (educations.cards_done - items.marker))
WHEN items.marker is null
THEN 0
END
LIMIT 10
PostgreSQL の case ステートメントを使用して、その順序でインデックスを作成することは可能ですか? そうでない場合、このクエリを高速化する他の方法はありますか? ご協力いただきありがとうございます。