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 :)



-- 
--------------------------------------------------
Marcelo Silva
msn: [email protected]
cel.: (11) 9693-4251
Dev.: Delphi, PHP, ASP
_______________________________________________
pgbr-geral mailing list
[email protected]
https://listas.postgresql.org.br/cgi-bin/mailman/listinfo/pgbr-geral

Responder a