我有一个我需要在SQLite中执行的查询,这可能相当简单,但我似乎无法找到解决方案。
我有两个表格形成:
table_1
value | timestamp
x1 | 0
x2 | 1
x3 | 2
x4 | 3
x5 | 4
table_2
start | end
0 | 1
2 | 4
我想返回一个看起来像的结果:
start | end | computed_value
0 | 1 | avg(x1,x2) * (1 - 0)
2 | 4 | avg(x3,x4,x5) * (4 - 2)
其中avg(x1,x2)是x1和x2的实际平均值。我该如何完成这项任务?
提前致谢!
答案 0 :(得分:1)
假设我正确理解了您的问题且值列不是varchar
,而是numeric
,您可以使用join
avg()
完成此操作聚合:
select t2.start, t2.en, 1.0*avg(t1.val)*(t2.en-t2.start)
from table_2 t2
inner join table_1 t1 on t1.ts between t2.start and t2.en
group by t2.start, t2.en
您可能需要1.0*
来使用其他数据库中的sqlite旧习惯......