select
2.5*((r-i)/(r+(6*i)-(7.5*n)+1)) as tera,
(r-(2*i)-n)/(r+(2*i)-n) as tera2
from
(
select
sum(case when wavelength between 340 and 345 then reflectance end) as r,
sum(case when wavelength between 350 and 355 then reflectance end) as i,
sum(case when wavelength between 360 and 365 then reflectance end) as n
from
test
) vars
W przypadku wielu stołów możesz użyć czegoś takiego:
select
table_name,
2.5*((r-i)/(r+(6*i)-(7.5*n)+1)) as tera,
(r-(2*i)-n)/(r+(2*i)-n) as tera2
from
(
select
table_name,
sum(case when wavelength between 340 and 345 then reflectance end) as r,
sum(case when wavelength between 350 and 355 then reflectance end) as i,
sum(case when wavelength between 360 and 365 then reflectance end) as n
from
(
select 'table 1' as table_name, * from test
union all
select 'table 2', * from test
union all
select 'table 3', * from test
union all
select 'table 4', * from test
) as all_tables
group by
table_name
) vars
Wystarczy zmodyfikować nazwy tabel na swoje rzeczywiste nazwy i powtórzyć union all
tyle razy, ile potrzebujesz.