SQLite查询加入

时间:2015-03-11 13:30:41

标签: sqlite

我有一个我需要在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的实际平均值。我该如何完成这项任务?

提前致谢!

1 个答案:

答案 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旧习惯......