bounty将在6天后到期。此问题的答案有资格获得+50荣誉奖励。Quark希望更多地关注这个问题。
我有一个队列,它在一段时间内具有增长率。我正在尝试获得我指定的两行之间的总体增长。这是SQL小提琴http://sqlfiddle.com/#!1756年9月2日
select i1.Month, i1.Rate, EXP(SUM(LOG(1+i2.Rate))) InfRate
from Inflation i1
inner join Inflation i2 on i1.Month >=i2.Month
group by i1.Month, i1.Rate
order by Month DESC
这似乎是正确的,我能够在提琴中获得整个月份范围的增长率,但是我尝试使用一个派生表,以便我可以指定月份周期,就像这样,但是它不起作用
select i1.Month, i1.Rate, EXP(SUM(LOG(1+i2.Rate))) InfRate
from (SELECT * FROM `Inflation` WHERE Month between '2020-01-01' and '2022-01-01') as DT
inner join Inflation i2 on i1.Month >=i2.Month
group by i1.Month, i1.Rate
order by Month DESC
我得到错误#1054-“字段列表”中的未知列“i1.Month”
我正在尝试为“2020-01-01”和“2022-01-01”之间的时段或我指定的任何其他范围使用派生表,但它似乎不适合我。如有任何帮助,我们将不胜感激。
考虑到只查询了“2020-01-01”和“2022-01-01”之间的时段,预期结果如下
http://sqlfiddle.com/#!2013年9月8日/1
1条答案
按热度按时间kxe2p93d1#
在第二个示例中,您没有名为
i1
的表,但您正在从中查询值。我相信你想要的是它将
i1
引用替换为DT
。