Синхронизировать месячные данные с дневными в PostgreSQL по данным типа timestamp

Изучаю PostgreSQL. Возник слеудющий вопрос: Можно ли синхронизировать месячные данные с дневными в PostgreSQL по данным типа timestamp?

Есть два вида данных индексы в них числа timestamp, то есть время. Один вид имеет частоту в один день(кроме субботы и воскресения), а другой частоту в один месяц. При этом мне во всех данных нужна частота в один день. То есть из месячных данных мне нужно создать данные с частотой в один день.

В Python, переделывал месячные данные в дневные, к примеру так:

#где "date_n" месячный и "date" дневной массивы выполняющие роль индексов(datetime), 
#а "z" это дневные значения копируемые из месячных "quote"
    x = N1 - 1
    for q in range(0, N):
        k = u
        for i in range(k, N1):
            if date_n[i - 1] <= date[q] and date_n[i] > date[q]:
                u = i
                z[q] = quote[i - 1]
                break
            if x == i and date[q] >= date_n[i]:
                u = i
                z[q] = quote[i]
                break

Может есть в базах данных, более быстрый способ? Так как читал, что можно сделать что-то вроде общей индексации для разных таблиц.

К примеру котировки валюты дневные данные, которые основные:

2021.06.15 00:00:00,1.47099,1.47912,1.47039,1.47673,113011
2021.06.16 00:00:00,1.47678,1.4782,1.47037,1.47224,137780
2021.06.17 00:00:00,1.47216,1.47331,1.46781,1.47088,169577
2021.06.18 00:00:00,1.47088,1.47935,1.46963,1.47847,178604
2021.06.21 00:00:00,1.4778,1.48236,1.47157,1.47255,161048
2021.06.22 00:00:00,1.47255,1.47567,1.46865,1.46884,128497
2021.06.23 00:00:00,1.46879,1.47007,1.46541,1.46725,135825
2021.06.24 00:00:00,1.46718,1.47182,1.46621,1.47002,133946
2021.06.25 00:00:00,1.46997,1.47129,1.46697,1.46788,105309

К ним нужно привязать другие данные у которых периодичность раз в месяц(то есть на каждом значении котировки мне нужно знать ближайшее значение из месячных данных):

2020.11.13 00:00:00,-1.000
2020.12.13 00:00:00,-1.630
2021.01.13 00:00:00,-2.957
2021.02.12 00:00:00,-3.035
2021.03.15 00:00:00,-2.799
2021.04.15 00:00:00,-1.885
2021.05.13 00:00:00,-0.975
2021.06.13 00:00:00,-0.290

Ожидаемые данные(дневные) переделанные из месячных:

2021.06.15 00:00:00,-0.290
2021.06.16 00:00:00,-0.290
2021.06.17 00:00:00,-0.290
2021.06.18 00:00:00,-0.290
2021.06.21 00:00:00,-0.290
2021.06.22 00:00:00,-0.290
2021.06.23 00:00:00,-0.290
2021.06.24 00:00:00,-0.290
2021.06.25 00:00:00,-0.290

Все это нужно, чтобы использовать объединенные данные в машинном обучении.

Сейчас сделал саму таблицу с дневными данными к ней мне нужно привязать месячные данные(загрузил из файла):

    o    |    h    |    l    |    c    |   v    |        date_        
---------+---------+---------+---------+--------+---------------------
         |         |         |         |        | 
         |         |         |         |        | 
 1.81198 | 1.81374 | 1.78596 | 1.78837 | 205467 | 2018-10-30 00:00:00
 1.78844 | 1.80817 | 1.78753 | 1.80407 | 196775 | 2018-10-31 00:00:00
 1.80402 | 1.80912 | 1.79434 | 1.80423 | 215630 | 2018-11-01 00:00:00
 1.80419 | 1.80566 |  1.7931 | 1.80143 | 216667 | 2018-11-02 00:00:00

P.S. Хотелось бы сделать синхронизацию без использования Python средствами Postgresql.


Ответы (0 шт):