草庐IT

rolling-sum

全部标签

linux - 来自 shell 的 GROUP BY/SUM

我有一个包含如下数据的大文件:a23b8a22b1我希望能够得到这个:a45b9我可以先对该文件进行排序,然后在Python中扫描该文件一次。有什么好的直接命令行方式来执行此操作? 最佳答案 编辑:现代(GNU/Linux)解决方案,正如几年前的评论中提到的;-)。awk'{arr[$1]+=$2}END{for(keyinarr)printf("%s\t%s\n",key,arr[key])}'file\|sort-k1,1最初发布的解决方案,基于旧的Unixsort选项:awk'{arr[$1]+=$2}END{for(keyi

java - Java中的真道解决方案: parse 2 numbers from 2 strings and then return their sum

给定代码:publicstaticintsum(Stringa,Stringb)/*throws?WHAT?*/{intx=Integer.parseInt(a);//throwsNumberFormatExceptioninty=Integer.parseInt(b);//throwsNumberFormatExceptionreturnx+y;}你能判断它是否是好的Java吗?我在说的是,NumberFormatException是未经检查的异常。您不必将其指定为sum()的一部分签名。此外,据我了解,未经检查的异常的想法只是表明程序的实现不正确,更重要的是,捕获未经检查的异常是一

sql - 对多个父记录的子项属性进行 SUM 运算

我的产品模型中有这个方法可以满足我的需要:defself.availableavailable=[]Product.all.eachdo|product|ifproduct.quantity>product.sales.sum(:quantity)available但是,我想知道是否有更有效的方法来做到这一点,也许只需要调用一次数据库。 最佳答案 你可以试试:Product.where("products.quantity>Coalesce((selectsum(s.quantity)fromsalesswheres.product

ruby 1.8.7 : group_by with sum in an enumerable type

我有一个按以下结构排列的记录数组:[{"some_id"=>2,"some_total=>250},{"some_id"=>2,"some_total"=>100},{"some_id"=>3,"some_total"=>50},{"some_id"=>3,"some_total"=>50},{"some_id"=>3,"some_total"=>25},{"some_id"=>1,"some_total"=>10}]使用Ruby的group_by/inject/sum或Enumerable可用的任何方法的最佳方法是什么,以使其返回有序的哈希数组,其中每个哈希由“some_id”键控,

ruby-on-rails - 每个循环 : show item once and sum quantity

我目前正在使用这段代码循环查看特定日期的已订购商品ItemQuantity目前,如果商品1被多次订购,它会在列表中出现多次。我只想让它出现一次,旁边有一个数字来显示订购的数量。例如,如果item_1在demand_1中的数量为5,item_1在demand_2中的数量为10,则结果应为:item_1....15谢谢! 最佳答案 应该这样做:ItemQuantity希望这对您有所帮助!一些解释:@demand.flat_map(&:demand_items)#equivalent:(longversion)@demand.map{|d

sql - rails : Group and sum while adding last values (Fibonacci)

我正在尝试对每个月的报价总和进行分组,同时添加最后的总和。例如:Jan:300€Fev:200€Mars:100€组应该返回的是:Jan:300€Fev:500€(200+Jan's300)Mars:600€(100+Fev's500)当前SQL:current_user.quotes.group_by_month(:created_at,last:12).sum(:price)我正在使用groupdategem。谢谢。 最佳答案 如果使用postgresql,你可以使用windows函数UNBOUNDEDPRECEDING第一行,

ruby-on-rails - 来自 group(..).sum(..) 的 Rails 排序结果

我正在使用Rails并绘制一些数据。我使用以下内容:如何让这个组命令按分数从高到低对返回的数组进行排序?我的模型排列如下classUser 最佳答案 你的score是Level还是User?好的,它们处于更深层次的嵌套关系中。如果您的User模型声明:,您可以让您的生活更轻松:classUser然后你必须加入关卡。查看ActiveRecord生成的SQL可以看出User.joins(:levels).group(:email).sum(:score)生成SELECTsum(score)ASsum_score,emailFROMuse

ruby - 定义方法 `sum_to_n?`

我有下面的代码。方法sum_to_n?接受一个整数数组arr和一个整数n作为参数,如果有任何两个元素则返回truearr总和为n。对于n为零的空arr,它应该返回true,但一直返回false。defsum_to_n?(arr,n)hash=Hash.new(0)arr.eachdo|val|ifhash.key?valreturntrueelsehash[n-val]=valendendreturnfalseend我做错了什么? 最佳答案 较短的版本:defsum_to_n?(arr,n)(arr.empty?&&n.zero?)

ruby - 如何在 Ruby 中处理 'reverse sum'?

我不知道如何用正确的数学术语来调用它。考虑一种采用两位数的方法:defnum_of_sum(total,group_count)end其中total是一个整数,group_count是一个整数。我如何得到一个长度为group_count的整数“很好地”分组数组,总计到total。我的规范看起来像:describe"numbertosumof"doit"grabsallnumbers"doexpect(num_of_sum(10,2)).toeq([5,5])expect(num_of_sum(10,3)).toeq([3,3,4])expect(num_of_sum(20,3)).to

ruby - 内部舍入问题 : accurate way to sum Ruby floating point numbers?

这当然是坏的:(0.1+0.1+0.1)=>0.30000000000000004(0.1+0.1+0.1)==0.3#false我不需要完美的总和,只要足以说明两个float具有相同的值即可。我能想到的最好办法是将等式两边相乘并四舍五入。这是最好的方法吗?((0.1+0.1+0.1)*1000).round==(0.3*1000).round更新:我卡在了Rubyv1.8.7上。 最佳答案 准确求和和有效比较是有区别的。你说你想要前者,但看起来你想要后者。底层的Rubyfloat算法是IEEE的,并且具有最小化累积误差的合理语义,