Perfeito! Era exatamente isso que eu precisava... Procurei muito por uma função dessas! Muito obrigado!
2009/8/18 Osvaldo Kussama <[email protected]> > 2009/8/18 Leonardo Cezar <[email protected]>: > > On Tue, Aug 18, 2009 at 2:53 PM, Leonardo Cezar<[email protected]> > wrote: > >> <corte> > >> > >> SELECT EXTRACT(year FROM data), COUNT(id) > >> FROM teste > >> GROUP BY EXTRACT(year FRIN data); > > > > Complementando: > > > > http://www.postgresql.org/docs/8.4/static/tutorial-sql.html > > > > > Complementando o que já foi dito: > Para você exibir os anos inexistentes em sua tabela faça um JOIN com a > função generate_series. > http://www.postgresql.org/docs/current/interactive/functions-srf.html > > Com seus dados: > bdteste=# SELECT ano, sum(coalesce(quant,0)) FROM (SELECT > generate_series(menor,maior) FROM (SELECT min(extract(year from > data))::int AS menor, max(extract(year from data))::int AS maior FROM > teste) foo) bar(ano) LEFT OUTER JOIN teste ON ano = extract(year from > teste.data)::int GROUP BY ano ORDER BY ano; > ano | sum > ------+----- > 2000 | 15 > 2001 | 0 > 2002 | 56 > 2003 | 0 > 2004 | 0 > 2005 | 22 > 2006 | 0 > 2007 | 0 > 2008 | 45 > 2009 | 34 > (10 registros) > > Osvaldo > _______________________________________________ > pgbr-geral mailing list > [email protected] > https://listas.postgresql.org.br/cgi-bin/mailman/listinfo/pgbr-geral > -- Atenciosamente, Daniel Falcão Analista e Desenvolvedor de Software http://lattes.cnpq.br/2208735579737258 http://embuar.blogspot.com
_______________________________________________ pgbr-geral mailing list [email protected] https://listas.postgresql.org.br/cgi-bin/mailman/listinfo/pgbr-geral
