none
gropu by e funções de agregação RRS feed

  • Pergunta

  • ola....

     

    quando utilizamos um GROUP BY num SELECT temos que usar funções de agregação em todos os campos do resultado... correto?? ou tem outra forma de fazer isto??

     

    exemplo:

     

    SELECT cod_mat, MIN(desc_mat), SUM(qtd_mat) from GMAT1 GROUP BY cod_mat

     

    nessa query tive que utilizar a função de Agregação MIN no campo desc_mat, mesmo que não fosse necessario pois esse valor seria igual...

    sempre utilizo desta forma sem problemas, mas imagino que haja uma outra forma de fazer isto, sem utilizar a função de agregação em campos que não seja necessario, ja que isso provavelmente deve influenciar na execução da query, talvez nada que seja notavel, mas o sqlserver teria que comparar todos os valores do campo DESC_MAT pegar apenas o MIN no agrupamento...

    alguma outra forma de fazer isto?

    terça-feira, 23 de janeiro de 2007 16:14

Todas as Respostas

  • e assim mesmo infelizmente, mais vc. pode usar um join ( por derivada  ) com o group by.

     

    Abs;

    terça-feira, 23 de janeiro de 2007 16:18
  • ThePhanton,

    Realmente o padrão é isso mesmo, mas com o Marcelo disse você pode utilizar um Join.

    Eu particularmente costumo utilizar o Group by em Query isolados justamente para evitar este tipo de situação.

    terça-feira, 23 de janeiro de 2007 16:27