【问题标题】:How to find the sum of multiple columns for each individual record in rails?如何找到rails中每条记录的多列总和?
【发布时间】:2017-09-29 03:36:23
【问题描述】:

我正在寻找我的数据库中多个列的值的总和。这是一款梦幻篮球应用程序,可提供梦幻联赛中所有球员的统计分析。我正在尝试为数据库中的每条记录添加 7 列。我不确定是使用 ActiveRecord 查询方法还是使用实际的 SQL 查询更好。这是我尝试在 SeasonPlayer 模型中使用的方法:

   def self.find_player_value_totals
     player_values = []
     query = <<-SQL
               SELECT id,( free_throw_value + three_pointer_value + 
               rebounds_value + assists_value + steals_value + 
               blocks_value + points_value )
               AS value_total
               FROM season_players
             SQL
     totals = find_by_sql(query)

     totals.each do |total|
       player_values << total.value_total
     end
  end

在我的 MySQL 数据库中使用此查询,我可以毫无问题地找到总数:

select id,( free_throw_value + three_pointer_value + rebounds_value + assists_value + steals_value + blocks_value + points_value ) AS value_total FROM season_players

任何建议都将不胜感激,因为我不是 Rails 专家。

【问题讨论】:

    标签: mysql ruby-on-rails activerecord


    【解决方案1】:

    我不太明白你的问题。但我认为这是你想要实现的:

    class SeasonPlayers
      # assuming that you only want to aggregate from one player
      def find_player_value_totals
        [free_throw_val, three_pointer_val, rebound_val, assist_val, steals_val, blocks_val, points_val].sum
      end
    end
    

    希望有帮助

    【讨论】:

    • 感谢您的回复@pauloancheta!我希望汇总每个玩家的总数。我不确定如何同时遍历多个数组。
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多