0
我在我的PostgreSQL 9.5数据库中有两个表,即tbl1
和tbl2
。 TBL1包含(无时区的时间戳)数据,如:如何在PostgreSQL中插入缺失列的值?
Start_time
1996-06-07 00:00:00
1997-02-03 00:00:00
2000-07-09 00:00:00
和tbl2
包含这样一些值:
ID. veh_1995 veh_2000
1 200 425
2 400 478
3 150 300
4 700 800
5 900 1500
下面的查询插值(年列之间的间隙)失踪多年的值` tbl2的:
SELECT
veh_1995,
(veh_1995 + (veh_2000 - veh_1995) * 0.2)::int AS veh_1996,
(veh_1995 + (veh_2000 - veh_1995) * 0.4)::int AS veh_1997,
(veh_1995 + (veh_2000 - veh_1995) * 0.6)::int AS veh_1998,
(veh_1995 + (veh_2000 - veh_1995) * 0.8)::int AS veh_1999,
veh_2000
from tbl2
我需要修改上面的查询这样的:
- 在
tbl1
每个start time
行,查询应检查是否有一些失踪多年列tbl2
- 如果是,那么插值那些缺少的列值,并参考返回所有列年
start_time
预期输出:
Year value
1996 ...
1997 ...
2000 ...
我会感激,如果有人可以帮我修改上面的查询得到我想要的输出?
您对预期输出的描述是否完整?您的短语“在start_time中参考年份返回所有列”表明您也希望在输出中使用start_time。还要考虑一年的单个列的输出格式和该值可能更好地表示数据(并且更容易产生) - 对于您的tbl2也是如此。 –
你可能是对的。原则上,我想在start_time中选择每年的值。如果缺少一些年份,则查询会插入并返回start_time中所有年份的值。因此,它可以在输出。只要编辑所需的输出。 –