Vous n'êtes pas identifié(e).
- Contributions : Récentes | Sans réponse
#1 02/01/2014 14:24:54
- CHR
- Membre
[RESOLU] - Equivalent "over (PARTITION BY..." pour la version 8.3.19
Je viens de réaliser que le serveur sur lequel je voulais utiliser les solutions que vous m'avez proposées est dans la version 8.3.19 et que cette version n'inclut pas le fenêtrage... les over (PARTITION BY sont donc inutilisables, je ne sais pas si nous avons prévu de migrer et vu les soucis annoncés pour passer la 8.3, bref, auriez-vous une alternative à cette solution qui soit utilisable dans la 8.3.19 ?
D'avance merci,
chr
Dernière modification par CHR (02/01/2014 17:22:40)
Hors ligne
#2 02/01/2014 14:52:43
- rjuju
- Administrateur
Re : [RESOLU] - Equivalent "over (PARTITION BY..." pour la version 8.3.19
Vous pouvez réécrire la requête ainsi (non testé sur une 8.3) :
SELECT staff_id, extract(month from payment_date),
count(*) AS totmois,
(SELECT count(*) FROM payment where staff_id = p.staff_id) AS total,
(SELECT count(*) FROM payment) as totgeneral
FROM payment p
GROUP BY staff_id, extract(month from payment_date)
ORDER BY staff_id, extract(month from payment_date);
Seulement cette requête sera vraiment beaucoup moins performante qu'avec des fonctions de fenêtrage.
Il n'y a pas énormément de régressions depuis la version 8.3 (le pire étant le passage en 8.3, du à la suppression des casts implicites). La version 8.3 n'étant plus supportée, vous devriez prévoir une migration assez rapidement vers une 9.2 ou 9.3.
Julien.
https://rjuju.github.io/
Hors ligne
#3 02/01/2014 17:22:14
- CHR
- Membre
Re : [RESOLU] - Equivalent "over (PARTITION BY..." pour la version 8.3.19
Merci pour vos précieuses réponse et bonne suite !
Hors ligne