这是数据结构。date是唯一的,但可能会丢失(意思是跳过日期,但不是NULL),并且是无序的。如果记录的数量是奇数,只需省略最后一个记录。
date | value | value2
-----------+-------+--------
2017-10-11 | 10 | 0.2
2017-10-13 | 22 | 0.3
2017-10-12 | 6 | 0.0
2017-10-14 | 20 | 0.6
...我希望使用记录到合并的值的平均与新值合并最近的两个记录。只使用。
期待结果。
date | value | value2
-----------+-------+--------
2017-10-11 | 8 | 0.1
2017-10-13 | 21 | 0.45
...
2017-10-11 merged 2017-10-11 and 2017-10-12, i.e. value = AVG(10,6) = 8
2017-10-13 merged 2017-10-13 and 2017-10-14, i.e. value = AVG(22,20) = 21发布于 2017-11-21 15:14:33
select min(date), avg(value), avg(value2)
from (
select *, (row_number() over(order by date)-1)/2 grp
from Table1
) X
group by grp基于sqlfiddle.com的演示
https://stackoverflow.com/questions/47415905
复制相似问题