多个时间间隔的公式执行

时间:2014-04-02 04:31:36

标签: sql postgresql

我的数据就像这样

wavelength    reflectance
341.6         2.48
343.6         2.58
344.7         2.37
346.3         2.32
347.9         2.29
349.5         2.36
351.1         2.23
352.6         2.24
354.2         2.25
355.8         2.29
357.4         2.28
358.9         2.23

我想使用公式

  • 选择波长340-345之间的反射率为r
  • 选择波长350-355之间的反射率作为i

公式

r/i
  • 输入r / i命名为tera

执行

  • 所选区域的第一反射率值为r和i和 申请公式
  • 第二,第三次喜欢这次执行

预期产出

tera
1.105655
2.82345
.......

2 个答案:

答案 0 :(得分:1)

select (select sum(reflectance) from table where wavelength between 340 and 345)/
(select sum(reflectance) from table where wavelength between 350 and 355) as tera

答案 1 :(得分:0)

select
  r/i as tera,
  (r-i)/(r+i) as tera2
from
    (select wavelength, reflectance as r, row_number() over(order by wavelength) as rn
     from test where wavelength between 340 and 345) t1
    join 
    (select wavelength, reflectance as i, row_number() over(order by wavelength) as rn
     from test where wavelength between 350 and 355) t2 using (rn)

工作正常......