小编Ale*_*mba的帖子

在同一查询对象上进行Rails多种AR操作(最小,最大,平均)

我想使用一个查询到price_histories表来执行多个计算,最后使用平均,最小和最大等价格呈现一些统计信息。

price_histories_controller.rb

price_stats = PriceHistory.where('created_at >= ? AND cast(item_id as integer) = ?', 1.day.ago, params['item_id'])

avg_array = price_stats.group(:day).average(:price).to_a
min_array = price_stats.group(:day).min(:price).to_a
max_array = price_stats.group(:day).max(:price).to_a
count_array = price_stats.group(:day).count(:price).to_a
Run Code Online (Sandbox Code Playgroud)

这是导致错误的相关代码,我想对一组分组数据执行一些计算,但是在完成第一次计算后,我不断

TypeError(不会将Symbol隐式转换为Integer)

理想情况下,我将要渲染一个像这样的对象:

@all_stats = {
  average: avg_array,
  min: min_array,
  max: max_array,
  count: count_array
}

render json: @all_stats
Run Code Online (Sandbox Code Playgroud)

这很好地概括了我的意图,我是红宝石的新手,我想有一个确定的解决方案或更好的方法。

以下代码可以正常工作,我希望任何人都可以向我指出正确的方向,以找出为什么它可以正常工作,而在添加和进行额外的计算时却行不通:

    price_stats = PriceHistory.where('created_at >= ? AND cast(item_id as integer) = ?', 1.day.ago, params['item_id'])

    avg_array = price_stats.group(:day).average(:price).to_a
Run Code Online (Sandbox Code Playgroud)

并导致:

{
  "average": [
      [
         null,
         "11666.666666666667"
      ],
      [
         "24/4/2019",
         "11666.666666666667"
      ],
      [
          "24",
          "11666.6666666666666667"
      ],
      [ …
Run Code Online (Sandbox Code Playgroud)

ruby ruby-on-rails

3
推荐指数
1
解决办法
114
查看次数

如何创建函数指针的动态数组?

我无法做一个动态的函数指针数组,当有一个指向func_cmp指针的指针时,我很难理解如何使用动态数组函数指针.

int(*func_cmp[])(void *,void*);

numElements++; 
func_cmp=(func_cmp*)realloc(func_cmp, numElements*sizeof(func_cmp*));
func_cmp[numElements-1]=*func_cmp;
Run Code Online (Sandbox Code Playgroud)

我不确定realloc系列.

c function dynamic

2
推荐指数
1
解决办法
1574
查看次数

标签 统计

c ×1

dynamic ×1

function ×1

ruby ×1

ruby-on-rails ×1