Всем привет! Проблема такая: есть таблица в которой хранятся значения баланса

для аккаунта, значения при обновлении баланса не перезаписываются, а пишутся в новой строке. Мне нужно забирать из таблицы самые актуальные значения баланса для списка аккаунтов. Каким образом это можно провернуть? У меня сейчас есть такой запрос, который возвращает мне все имеющиеся строки для списка аккаунтов
Я пыталась использовать max(date), но проблема в том, что даты у всех актуальных балансов могут быть разные
"""select
r.date,
r.balance,
a.num as account
from rest as r
join Account a on a.id = r.idAccount
where a.num in :accounts"""

9 ответов

34 просмотра

А почему вы думаете, что самый актуальный баланс будет соответствовать max(date)? В смысле -- хотя бы и по одному аккаунту.

Полина- Автор вопроса
Ilya Anfimov
А почему вы думаете, что самый актуальный баланс б...

Дата в формате timestamp, других показателей, способных показать точнее, нет

Полина
Дата в формате timestamp, других показателей, спос...

Мне было бы страшно обращаться в банк, который считает мой баланс по принцыпу "ну как есть, точнее у нас нет".

Полина- Автор вопроса
Ilya Anfimov
Мне было бы страшно обращаться в банк, который счи...

Так а кто сказал вам что это вопрос по банковскому продукту? )

Полина
Так а кто сказал вам что это вопрос по банковскому...

Да это неважно, по банковскому или по счёту за товары. Всё равно -- вы выбрали своеобразный метод подсчёта денег. Не самый плохой, но всё-таки.

Евгений Градус
предлагай свой вариант )

Последнее значение в одной таблицэ (возможно, вместе с ежэгодными сверками рассчётов или чем-то таким), в журнале операцый -- изменения баланса. Жэлающие баланса на определённую дату -- отсчитывают разницу от ближайшэй точки таблицы балансов, жэлающие последнего -- берут последний из таблицы балансов.

Полина- Автор вопроса
Ilya Anfimov
Последнее значение в одной таблицэ (возможно, вмес...

Хорошо, а если абстрагироваться от примера "баланс-аккаунт" и переделки логики, как бы вы решили вопрос?

Полина
Хорошо, а если абстрагироваться от примера "баланс...

Никак, без переделки логики этот вопрос выглядит нерешаемым. Можно попытаться переделать логику, оставив структуру таблиц, чтобы запись в таблицу нового баланса происходила всегда только с максимальной датой. Правильный режым SERIALIZABLE с блокировками диапазонов проверка, что наша дата максимальная для этого аккаунта в транзакцыи записи. И да, правильный режым serializable в postgres, например, появился только в 9.каком-то, впрочем это было большэ 10 лет назад и во всех поддержываемых версиях есть. в oracle database и ms sql server, насколько я помню очень давно правильный, в остальных серверах надо смотреть индивидуально.

Похожие вопросы

Обсуждают сегодня

Hi! Could you please upvote my new notebook? thanks a lot. https://www.kaggle.com/code/melissamonfared/anime-character-generation-dsgan-gan
məru
4
upvote plz https://www.kaggle.com/code/bassetkerouche/swapping-face?scriptVersionId=207300096
benkerrouche Statoinary
1
-- Привет всем. -- Есть csv, проблема в том что он содержит очень много повторов по столбцам и по строкам. -- Решил перекинуть это в базу данных, чтобы было проще. Но я не ша...
Oleg Ivanov
1
Как считаете - вопрос на собесе: «Как быстрее всего запустить ec2 машину в aws (в чистом аккаунте) и показать вывод от любой команды с нее» не очень ли сложный для условного м...
Sergey
50
Господа, у меня вопрос. Что вообще такое этот ваш data science и data scientists? А то гуглю, а мне какую-то расплывчатую фигню говорят.
Inkosta
44
Hi could you please help me with my two new projects? https://www.kaggle.com/code/hesankazemnia/rice-image-classification-cnn-pytorch https://www.kaggle.com/code/hesankazemnia...
Hesan
6
Исходя из ваших комментариев, получается, что чтобы получить марты в CH из данных в PG, неправильно тянуть сырые данные в CH и там их обрабатывать, лепить справочники и джойни...
unhingedlunatic
42
hi, Can you upvote? https://www.kaggle.com/code/durjoychandrapaul/rag-q-a-system-by-langchain-huggingface-for-pdf?scriptVersionId=204704280
A
1
Could you upvote and comment please? https://www.kaggle.com/code/tatianapetrushkevich/beginner-images https://www.kaggle.com/code/tatianapetrushkevich/python-for-beginners1 ...
Tazziyana
7
Коллеги, приветствую! Появилась не совсем тривиальная задача реализовать в nginx редирект HTTPS —> HTTP. Да, именно так, а не наоборот. Мы разрабатываем embedded устройство,...
Никита
24
Карта сайта