A partir de la requête PostgreSQLChoisir n premiers éléments de telle sorte que la somme accumulée atteigne une valeur donnée
SELECT filename FROM files_storage ORDER BY date;
je voudrais réduire la table de sortie à la première n rangées de telle sorte que la somme accumulée à partir de la rangée 1 à n d'une colonne appelée size
atteint au moins max_value
.
Exemple:
date filename size
2016-09-01 /a/aaa/ 20
2016-09-02 /a/bbb/ 70
2016-09-03 /a/ccc/ 20
2016-09-04 /a/ddd/ 30
2016-09-05 /a/eee/ 50
Si max_value
est 100, je veux revenir les trois premières lignes parce que 20 + 70 + 20 >= 100
.
J'ai vu des réponses à des questions similaires, mais rien dans PostgreSQL.
Je note que vos données d'exemple n'ont pas 'date', mais votre requête le fait. –