Vous n'êtes pas identifié(e).
- Contributions : Récentes | Sans réponse
Pages : 1
#1 23/04/2010 12:05:30
- jemini
- Membre
Addition de colonnes sur plusieurs enregistrements
Bonjour,
Voilà mon problème.
J'ai une table comportant les infos de fichiers avec les champs suivants :
- id (identifiant unique)
- name (nom du fichier)
- size (taille du fichier en octets)
- date (date de création du fichier)
Je souhaite récupérer les x premiers fichiers, classer par date, dont le poids total (comprendre la somme des colonnes "size" des x fichiers) est inférieure ou égale à une valeur définie (appelée TAILLE_MAX).
Comment réaliser une telle requête ?
Merci par avance pour votre aide.
J.
Hors ligne
#2 23/04/2010 13:55:48
- daamien
- damien clochard
Re : Addition de colonnes sur plusieurs enregistrements
Je vois pas ce que tu appeles « la somme des colonnes "size" ».
De ce que je comprends de ton énoncé, ça donne
SELECT *
FROM fichiers f
WHERE f.size <= TAILLE_MAX
ORDER BY f.date
LIMIT x
Un exemple concret de résultat attendu serait utile
damien clochard
http://dalibo.org | http://dalibo.com
Hors ligne
#3 26/04/2010 11:38:57
- jemini
- Membre
Re : Addition de colonnes sur plusieurs enregistrements
Merci pour ta réponse.
Un exemple concret de résultat attendu serait utile
Effectivement, voici un exemple :
J'ai les 4 enregistrements suivants :
- id:1, name:fichier1, size:100, date:01/01/10
- id:2, name:fichier2, size:100, date:02/01/10
- id:3, name:fichier3, size:100, date:03/01/10
- id:4, name:fichier4, size:100, date:04/01/10
Je veux obtenir les premiers enregistrements, classés par date dont le poids total est <= 350, j'obtiendrai donc :
- id:1, name:fichier1, size:100, date:01/01/10
- id:2, name:fichier2, size:100, date:02/01/10
- id:3, name:fichier3, size:100, date:03/01/10
Car la somme de id1.size + id2.size + id3.size <= 350
Cette requête est-elle réalisable ?
J.
Hors ligne
#4 26/04/2010 14:52:34
- Marc Cousin
- Membre
Re : Addition de colonnes sur plusieurs enregistrements
Bonjour, dans quelle version de PostgreSQL (si c'est en 8.4, il y a une solution assez simple).
Marc.
Hors ligne
#5 26/04/2010 15:27:01
- jemini
- Membre
Re : Addition de colonnes sur plusieurs enregistrements
dans quelle version de PostgreSQL
Version 8.3
J.
Hors ligne
#6 26/04/2010 15:36:54
- Marc Cousin
- Membre
Re : Addition de colonnes sur plusieurs enregistrements
Dommage.
Je ne pense pas que vous puissiez faire cette requête correctement avec une version antérieure à la version 8.4 : vous voulez faire une somme glissante, et c'est justement le rôle des 'window functions', rajoutées dans cette version. Je ne pense pas qu'il y ait de solution propre pour résoudre ça avec des fonctions SQL standard.
Dernière modification par Marc Cousin (26/04/2010 15:37:09)
Marc.
Hors ligne
#7 26/04/2010 16:14:27
- jemini
- Membre
Re : Addition de colonnes sur plusieurs enregistrements
Merci pour ta réponse. Oui c'est exactement ce que je veux faire : une somme glissante. Je vais donc devoir faire cela au niveau applicatif...
J.
Hors ligne
#8 26/04/2010 16:15:45
- Marc Cousin
- Membre
Re : Addition de colonnes sur plusieurs enregistrements
Ou passer en 8.4, si c'est possible. C'est de toutes façons la version qu'il est recommandé d'utiliser maintenant.
Marc.
Hors ligne
Pages : 1