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 : Sélectionner tout - Visualiser dans une fenêtre à part
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
Partager