TeamモデルとPlayerモデルがhas_manyの関係でpolymorphicなScoreモデルを持つというような構成で チームやプレイヤーに得点を付けることができるシステムを作成しています。

チームに所属しているプレイヤーの一覧を表示するときに Scoreモデルが持つvalueカラムの合計値を使ってソートをかけたいです。

Playerモデルに以下のスコープを作成しました。

scope :sorted, -> {
  joins(:scores)
  .group("players.id")
  .order("sum(scores.value) desc")
}

しかし、これだとひとつもスコアを付けられていない要素が含まれずに スコアを付けられている要素の中でソートが行われてしまいます。

スコアが付けられていない要素に対してはデフォルトで0点ということにして 全ての要素を取得したいのですがどうすればよいでしょうか?