首页 > 解决方案 > Rails:在添加最后一个值时进行分组和求和(斐波那契)

问题描述

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

例如:

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宝石。

谢谢。

标签: sqlruby-on-railsrubypostgresqlactiverecord

解决方案


如果使用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

寡妇功能


推荐阅读