У меня есть серия записей о платежах в базе данных. Мне нужны только первые n записей FOR EACH id, сумма которых не превышает другую переменную столбца (начальный счет) для каждого идентификатора.
select *
FROM db.paymentrecords
Order by PaymentDate;
Является ли индексирование правильным способом борьбы с этим? Я не уверен, как указать MYSQL, чтобы получать только первые n записей из каждой группы (каждая группа - это просто все платежи для каждого идентификатора).
Идея состоит в том, чтобы выяснить, сколько было оплачено по накладной в любое время.
возможно что-то вроде
WHERE sum(first n records in each grouping < aggregate invoice amount)
Я чувствую, что это должно быть просто, и все же я не уверен, как сделать это логически с SQL. Будем очень благодарны любой помощи. Спасибо, ребята!
Редактировать ** Так что, на мой взгляд, в sql все оказалось слишком сложно, мы переключились и сделали это программно, используя python для выполнения необходимой нам логики. Я до сих пор не уверен, как сделать это в SQL с индексированием каждой группы записей? Спасибо за всю помощь, ребята!