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

标签 sql ruby-on-rails ruby postgresql activerecord

我正在尝试对每个月的报价总和进行分组,同时添加最后的总和。

例如:

Jan: 300€
Fev: 200€
Mars: 100€

组应该返回的是:

Jan:300€
Fev: 500€ (200 + Jan's 300)
Mars: 600€ (100 + Fev's 500)

当前 SQL:

current_user.quotes.group_by_month(:created_at, last: 12).sum(:price)

我正在使用 groupdate gem。

谢谢。

最佳答案

如果使用postgresql,你可以使用windows函数

  1. UNBOUNDED PRECEDING 第一行,CURRENT ROW 当前行
  2. 使用sum函数进行累加

像这样。

select name,sum(price) 
         over(order by (select 1) ROWS BETWEEN UNBOUNDED PRECEDING AND CURRENT ROW)  "price"
from T

sqlfidde:http://sqlfiddle.com/#!17/763e3/7

Widows function

关于sql - rails : Group and sum while adding last values (Fibonacci),我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/50132489/

相关文章:

mysql - Multi-Tenancy 数据库,每个表上都有租户 ID

sql - 根据一列中的 id 从多行中获取单个记录

英语词典sql数据库

ruby-on-rails - 在 Rails select 上设置类

ruby-on-rails - Rails 7 - has_many_attached 加载新附件时删除旧附件

sql - SELECT 语句帮助

ruby-on-rails - Heroku 实例中的 Rails 4 `rake db:migrate`,引用错误

ruby-on-rails - 免费城市/州/邮政编码到纬度/经度数据库?

ruby-on-rails - 在 ec2 实例上未在生产中提供公共(public)/包中的 rails 预编译 Assets

ruby-on-rails - rails has_one 通过关系不存在