У меня есть база данных со столом, сохраняющая изменения в балансе аккаунта через пару учетных записей с тремя столбцами;Выбор интервалов времени, быстрое выполнение и всегда возвращение последней записи с результатом
float balance, #The account balance after the change
Date date, #Date that balance change occurred
int aid #Account that the balance change occurred on
В нем содержится несколько записей за каждый день в году, и я хочу получить баланс каждые пять дней. Я также хочу, чтобы он разделился между учетными записями (т. Е. Если в тот же день произошли два изменения: , но на отдельных счетах возвратите оба).
Проблема в том, что это: Иногда будет несколько дней (или недель), где нет данных. Когда это произойдет, я хочу, чтобы вернуть последнюю запись до «отверстие» в наборе данных. Это упрощенная версия проблемы, фактическая база данных большая (несколько гигабайт), размер - причина, по которой я хочу вернуть подмножество данных. Он не может использовать специфичные для платформы методы, поскольку он должен работать как с oracle, так и с mySQL.
Мой вопрос:: Есть ли способ сделать это fast? Я бы мог написать запрос, который выполняет эту работу, но я надеюсь, что есть какой-то магический способ дьявола, который не требует много вложенных запросов и агрегатных функций.
ool, выглядит лучше, чем у меня: вы не выполняете «отличную помощь», а соединение noone-in-between, вероятно, быстрее. Это нормально, если я изменю свой запрос на основе вашего? – Andomar
@Andomar: Да, не стесняйтесь. Хотя иногда один метод может быть быстрее другого, в зависимости от данных. В большинстве случаев я нахожу, что LEFT OUTER JOIN быстрее. –
Спасибо, отредактирован. Исследуйте проверку даты, которая не работает для тестовых данных, поскольку она имеет несколько балансов с той же датой. – Andomar