powered by simpleCommunicator - 2.0.40     © 2025 Programmizd 02
Форумы / PostgreSQL [игнор отключен] [закрыт для гостей] / Как синхронизировать данные на основании двух разных столбцов с типом timestamp.
1 сообщений из 1, страница 1 из 1
Как синхронизировать данные на основании двух разных столбцов с типом timestamp.
    #40083621
inquisitive123
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Пару недель изучаю PostgreSQL.

Сделал две таблицы из файлов:
table = tablica,
table1 = tablica1.
Прилагаю оба файла в зазипованном файле.
Код: plsql
1.
2.
\copy tablica(date_s,close_s,date,close) FROM '/home/user/Рабочий стол/table.csv' ( FORMAT CSV, HEADER, DELIMITER(',') );
\copy tablica1(date_b,close_b) FROM '/home/user/Рабочий стол/table1.csv' ( FORMAT CSV, HEADER, DELIMITER(',') );



В таблице "tablica" первый столбец "date_s" время(timestamp), на основании этого времени нужно брать значения из таблицы "tablica1" столбец "close_b" ориентируясь по столбцу "date_b".
При этом: время из "tablica1" должно быть меньше или равно времени из "tablica" (то есть находим ближайшее значение).
Для примера в файле table есть две колонки date, close(это то, что должно получиться в итоге). Хорошо бы обойтись без циклов, чтобы работало быстро.

Таблицы следующих форматов:

Код: plsql
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
13.
14.
15.
16.
17.
18.
19.
                                   Таблица "public.tablica"
 Столбец |             Тип             | Правило сортировки | Допустимость NULL | По умолчанию 
---------+-----------------------------+--------------------+-------------------+--------------
 date_s  | timestamp without time zone |                    | not null          | 
 close_s | double precision            |                    |                   | 
 date    | timestamp without time zone |                    |                   | 
 close   | double precision            |                    |                   | 
Индексы:
    "tablica_pkey" PRIMARY KEY, btree (date_s)



                                   Таблица "public.tablica1"
 Столбец |             Тип             | Правило сортировки | Допустимость NULL | По умолчанию 
---------+-----------------------------+--------------------+-------------------+--------------
 date_b  | timestamp without time zone |                    | not null          | 
 close_b | double precision            |                    |                   | 
Индексы:
    "table1_pkey" PRIMARY KEY, btree (date_b)



В итоге должно получиться как в колонках(date, close):
Код: plsql
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
13.
14.
15.
16.
17.
       date_s        | close_s |        date         | close 
---------------------+---------+---------------------+-------
 2018-10-30 00:00:00 | 1.78837 | 2018-10-30 00:00:00 |     0
 2018-10-31 00:00:00 | 1.80407 | 2018-10-31 00:00:00 |     0
 2018-11-01 00:00:00 | 1.80423 | 2018-11-01 00:00:00 |     0
 2018-11-02 00:00:00 | 1.80143 | 2018-11-02 00:00:00 |     0
 2018-11-05 00:00:00 | 1.80782 | 2018-11-05 00:00:00 |     0
 2018-11-06 00:00:00 | 1.80699 | 2018-11-06 00:00:00 |     0
 2018-11-07 00:00:00 | 1.80337 | 2018-11-07 00:00:00 |     0
 2018-11-08 00:00:00 | 1.79942 | 2018-11-08 00:00:00 |     0
 2018-11-09 00:00:00 | 1.79488 | 2018-11-09 00:00:00 |     0
 2018-11-12 00:00:00 | 1.79058 | 2018-11-12 00:00:00 |     0
 2018-11-13 00:00:00 | 1.79697 | 2018-11-13 00:00:00 |     0
 2018-11-14 00:00:00 | 1.79616 | 2018-11-14 00:00:00 |   0.1
 2018-11-15 00:00:00 | 1.75475 | 2018-11-15 00:00:00 |   0.1
 2018-11-16 00:00:00 | 1.75021 | 2018-11-16 00:00:00 |   0.1
***************************************************
...
Рейтинг: 0 / 0
1 сообщений из 1, страница 1 из 1
Форумы / PostgreSQL [игнор отключен] [закрыт для гостей] / Как синхронизировать данные на основании двух разных столбцов с типом timestamp.
Целевая тема:
Создать новую тему:
Автор:
Закрыть
Цитировать
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


Просмотр
0 / 0
Close
Debug Console [Select Text]