Em 21 de maio de 2014 16:44, veronica almeida <[email protected] > escreveu:
> > > > Em 21 de maio de 2014 16:23, Pedro B. Alves <[email protected]>escreveu: > > >> >> >> Em 21 de maio de 2014 11:11, veronica almeida < >> [email protected]> escreveu: >> >> Oi, Pedro! >>> >>> Se tiver uma tabela com datas, uma dimensão de tempo (com data, ano, >>> mes), por exemplo, pode fazer algo assim: >>> >>> SELECT dim_tempo.mes, dim_tempo.ano, COUNT(pedidos.id) >>> FROM dim_tempo >>> LEFT JOIN pedidos ON dim_tempo.data = pedidos.datapedido >>> GROUP BY dim_tempo.mes, dim_tempo.ano >>> >>> >>> >> O problema não é a relação e sim os meses que não tem pedido. >> >> Por exemplo: >> >> quero os pedidos de Janeiro a Maio. >> >> Os meses que não tiverem pedidos, não vai trazer na relação, por isso >> preciso algo que cria esses meses. >> > > A tabela dim_tempo irá conter esses meses, seria uma tabela completa (de > tal ano até tal ano dependendo da necessidade), sem "buracos" nas datas. > Geralmente é utilizada em DW como a dimensão de tempo. > > O que o Matheus mandou irá retornar linhas "duplicadas" e não entendi de > onde vem o "dt" > > Mais ou menos isso, quando digo linhas "duplicadas": > > SELECT 05 as mes, 2014 as ano, 10 as qtd > UNION ALL > SELECT 05, 2014, 0 > > 5;2014;10 > 5;2014;0 > > Como o Renato mandou elimina a "duplicidade": > > SELECT mes, ano, SUM (qtd) as qtd FROM ( > SELECT 05 as mes, 2014 as ano, 10 as qtd > UNION ALL > SELECT 05, 2014, 0) as pedidos > GROUP BY mes, ano > > 5;2014;10 > > Não conhecia o generate_series... Valeu Matheus pela dica!! (-: > Perdão... na função do Matheus já faz a soma!! Sorry!
_______________________________________________ pgbr-geral mailing list [email protected] https://listas.postgresql.org.br/cgi-bin/mailman/listinfo/pgbr-geral
