Prezado Matheus, muito obrigado pela resposta. Vou implementar a sua solução durante essa semana.
Abraço, Rômulo. Em 23 de junho de 2013 14:59, Matheus de Oliveira <[email protected] > escreveu: > > 2013/6/20 Romulo Souza <[email protected]> > >> Prezados colegas, >> >> a partir da query: >> >> SELECT * FROM >> ( >> SELECT t.ano, >> s.sexo, >> SUM(f.qt_obito) obitos >> FROM f_sim f >> JOIN dim_tempo t ON (t.id=f.id_ano) >> JOIN dim_sexo s ON (s.id=f.id_sexo) >> GROUP BY t.ano,s.sexo >> ORDER BY t.ano,s.sexo >> ) tb1 >> >> como eu faço para obter uma consulta do tipo linha x coluna? O que >> preciso: nas linhas os valores dos anos e nas colunas as quantidades de >> óbitos, segundo sexo. Tentei alterar a query a partir de exemplos que vi >> utilizando crosstab, mas não fui capaz de resolver o problema. Alguém, por >> favor, poderia me auxiliar? >> >> > No seu caso, o modo mais fácil usando a função crosstab da tablefunc [1], > com a variante com dois parâmetros: o primeiro é sua consulta (como já > definiu), a segunda uma consulta que retorne apenas os sexos (M, F). Dessa > forma, mesmo que em algum ano não tenha óbitos dos dois sexos, o resultado > ainda aparecerá (valor null quando não encontrado). Seguindo seu exemplo > ficaria assim (deve testar): > > SELECT * FROM crosstab($$ > SELECT t.ano, > s.sexo, > SUM(f.qt_obito) obitos > FROM f_sim f > JOIN dim_tempo t ON (t.id=f.id_ano) > JOIN dim_sexo s ON (s.id=f.id_sexo) > GROUP BY t.ano,s.sexo > ORDER BY t.ano,s.sexo > $$, $$VALUES('M'),('F')$$ > ) AS tb1(ano int, fem int, masc int); > > > [1] http://www.postgresql.org/docs/current/static/tablefunc.html#AEN144882 > > Atenciosamente, > -- > Matheus de Oliveira > Analista de Banco de Dados > Dextra Sistemas - MPS.Br nível F! > www.dextra.com.br/postgres > > > _______________________________________________ > pgbr-geral mailing list > [email protected] > https://listas.postgresql.org.br/cgi-bin/mailman/listinfo/pgbr-geral > >
_______________________________________________ pgbr-geral mailing list [email protected] https://listas.postgresql.org.br/cgi-bin/mailman/listinfo/pgbr-geral
