Как получить последнее изменение ресурса в PostgreSQL - PullRequest
0 голосов
/ 05 марта 2019

Пример таблицы (PK date, user_id, thing_id):

date      |user_id|thing_id|volume|
2018-01-12|100    |142     |12
2018-02-05|100    |140     |50
2018-02-07|100    |141     |30
2018-02-22|100    |142     |90

В строке БД, созданной для пользователя, вещь, если объем изменился с прошлого раза.

Мне нужно знать, какой объем пользователяиметь на любую дату.

Запрос SELECT DISTINCT ON (thing_id) * FROM datatable WHERE user_id = $1 AND date <= $2 ORDER BY thing_id, date DESC работает, но это медленно, и если у меня будет миллионы строк, это будет проблемой.

В результате я хочу получить текущие объемы вещей:

updated_at|user_id|thing_id|volume|
2018-02-05|100    |140     |50
2018-02-07|100    |141     |30
2018-02-22|100    |142     |90

, когда я запрашиваю данные пользователя 100 для 2018-02-23 и

updated_at|user_id|thing_id|volume|
2018-02-05|100    |140     |50
2018-02-07|100    |141     |30
2018-01-12|100    |142     |12

для 2018-02-10

Каков наилучший способсделать это в PostgreSQL?Или, может быть, для этой задачи мне нужна база данных временных рядов?

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...