je tente de recueillir des statistiques simples sur une table, disons la structure simplifiée est la suivante:requête SQL (postgresql) pour l'extraction de l'année et la somme
ID | CREATIONDATE | VALUE |
------------------------------------------------
1 | 2007-01-06 13:54:00.000 | 7 |
2 | 2007-03-07 15:03:00.000 | 8 |
3 | 2008-07-02 18:55:00.000 | 12 |
4 | 2008-09-10 19:12:00.000 | 1 |
5 | 2010-01-06 13:54:00.000 | 4 |
6 | 2010-01-07 07:13:00.000 | 5 |
J'aimerais résumer les valeurs basées sur l'année de la date de création, donc actuellement j'exécuter ce qui suit:
select extract('year' from i.creationdate) as d1,
sum(i.value)
from items i
group d1
order by d1;
qui sortira
2007;15
2008;13
2010;9
Est-il possible d'améliorer la requête pour qu'elle produise automatiquement 0 pour l'année 2009 manquante, même s'il n'y a pas de ligne dans le tableau avec une date en 2009?
2007;15
2008;13
2009;0
2010;9