我需要的是按中心和月份汇总销售额,并获得过去4个月的销售额。
这是我的表格:
gem install json --platform=ruby --verbose
这就是我需要的:
center_id month_id sales_amt
1 201512 1000
1 201511 2000
1 201510 1500
1 201509 1700
1 201508 900
...
答案 0 :(得分:0)
简单的方法。只需将子查询添加到SELECT
即可SELECT
center_id, month_id, sales_amt, (
SELECT SUM(sub.sales_amt)
FROM foo sub
WHERE sub.month_id >= base.month_id-4
) as sales_4_month
FROM foo base
你也可以使用CTE
答案 1 :(得分:0)
您可以使用窗口功能来实现此目的:
select
center_id, month_id, sales_amt,
(
sales_amt +
lead (sales_amt,1,0) over (PARTITION BY center_id ORDER BY month_id desc) +
lead (sales_amt,2,0) over (PARTITION BY center_id ORDER BY month_id desc) +
lead (sales_amt,3,0) over (PARTITION BY center_id ORDER BY month_id desc)
) sales_4_month
from Sales
它应该比子查询更快,但你不能忘记选择3个月以上!否则,引导函数将没有要计算的行。