[Oracle 9i] : Fonctions analytiques
Bonjour,
je souhaite écrire une requête permettant de compter le nombre de création des enregistrements par an (la table contient le champs d_creation contenant la date à laquelle l'enregistrement a été créé), chaque année devant cumuler le total des années antérieures
Le nombre d'enregistrement comptés pour 2008 doit donc correspondre au nombre total d'enregistrements dans la table, celui de 2007 le nombre d'enregistrement créés jusqu'au 31/12/2007...
J'ai réussi à écrire une requête permettant d'obtenir le résultat souhaité :
Code:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31
| SELECT t1.annee, SUM(t2.nombre)
FROM
(
SELECT DISTINCT TO_CHAR(d_creation,'YYYY') annee, COUNT(*) nombre
FROM la_table
GROUP BY TO_CHAR(d_creation,'YYYY')
) t1,
(
SELECT DISTINCT TO_CHAR(d_creation,'YYYY') annee, COUNT(*) nombre
FROM la_table
GROUP BY TO_CHAR(d_creation,'YYYY')
) t2
WHERE t1.annee >= t2.annee
GROUP BY t1.annee
ORDER BY t1.annee DESC
;
ANNEE SUM(T2.NOMBRE)
2008 19843
2007 19567
2006 16172
2005 14741
2004 13015
2003 9227
2002 8469
2001 7450
2000 6696
1999 6068
1998 5390
1997 4960 |
J'aimerais simplifier cette requête en utilisant des fonctions analytiques. Je n'y suis pas encore parvenu.
Pouvez-vous me donner quelques pistes ?
Merci et bonne journée