【问题标题】:Order records based on calculation基于计算的订单记录
【发布时间】:2017-02-16 22:47:59
【问题描述】:

我目前正在寻找这样的目标最多的球员:

Player.joins(:player_stats).group('players.id').order('SUM(player_stats.goals) DESC')

但是现在我想按每场比赛的进球数排序,这是他们所有进球数的总和 (player_stats.goals) 除以他们玩过的比赛数 (players_stats.length)。使用 order() 进行排序时是否可以进行这样的算术运算?

注意:我正在开发一个 mySQL 数据库。

【问题讨论】:

  • Player.joins(:player_stats).group('players.id').order('(SUM(player_stats.goals) / COUNT(player_stats.player_id)) DESC')?
  • 太棒了!谢谢!

标签: mysql ruby-on-rails sorting


【解决方案1】:

我认为按照这些思路可以做到:

Player.joins(:player_stats)
      .group('players.id')
      .order('(SUM(p‌​layer_stats.goals) / COUNT(player_stats.player_id)) DESC')

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2018-08-13
    • 2013-02-26
    • 1970-01-01
    相关资源
    最近更新 更多