Em Qua, 2010-08-18 às 10:23 -0300, Marcelo Silva escreveu:
> Em quarta-feira 18 agosto 2010, às 09:26:48, JotaComm escreveu:
> > Não são muitos os registros, pelo que o desempenho é praticamente igual.
> 
> Bem as vezes podemos até usar Group By no lugar de Distinct, mas as 
> diferenças 
> são:
> 
> Distinct foi criado para ser usado quando não se precisa fazer soma (SUM) ou 
> valores máximos ou mínimos ou media e assim por diante, partindo deste 
> princípio no seu caso o correto seria o Distinct.
> 
> Exemplo de Distinct
> 
> SELECT DISTINCT * FROM TABELA
> 
> Ele irá verificar cada (ou grupo de) campo na tabela se coincide em algum 
> outro registro no result.
> 
> Exemplo Group By
> 
> SELECT COUNT(*), OPERADOR FROM TABELA
> GROUP BY OPERADOR
> 
> Neste caso eu quero agrupar os totais de cada operador, então tenho 
> obrigatoriamente que usar o Group By.
> 
> Por isso o Distinct é mais lento que o Group By em alguns casos, porque ele 
> faz uma verificação mais ampla.
> 
> Em resumo, Distinct e Group By são para uso diferentes, dessa forma você deve 
> analisar qual comando seria mais adequado a sua necessidade.
> 
> Claro que existe aqueles casos que é melhor bater o prego com a sola do 
> sapato 
> por ser mais rápido, pois até você ir na gaveta e pegar o martelo, o sapato 
> já 
> está no seu pé. No entanto, muitas sapatadas poderão estragar seu sapato, 
> coisa que não iria acontecer com o martelo. Dessa forma veja os prós e 
> contras, se amanhã não terá que reescrever seus códigos porque não usou a 
> função certa no lugar certo :)

No meu caso, agora sem dúvida, DISTINCT ON.


Obrigado a todos pela atenção.


Antonio.





_______________________________________________
pgbr-geral mailing list
[email protected]
https://listas.postgresql.org.br/cgi-bin/mailman/listinfo/pgbr-geral

Responder a