Vous n'êtes pas identifié(e).
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
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
Merci pour vos précieuses réponse et bonne suite !
Hors ligne