Cláusula Distinct no SQL
Após a lista de seleção ser processada, a tabela resultante pode opcionalmente estar sujeita à remoção das linhas duplicadas. A palavra chave DISTINCT deve ser escrita logo após o SELECT para especifi...
Publicado em: 14 de janeiro de 2009 | Leituras: 7.081 |
Canal: PostgreSQL |
Autor: Redação Oficina da Net
Após a lista de seleção ser processada, a tabela resultante pode opcionalmente estar sujeita à remoção das linhas duplicadas. A palavra chave DISTINCT deve ser escrita logo após o SELECT para especificar esta funcionalidade:
(Em vez de DISTINCT pode ser utilizada a palavra ALL para especificar o comportamento padrão de manter todas as linhas)
Como é óbvio, duas linhas são consideradas distintas quando têm pelo menos uma coluna diferente. Os valores nulos são considerados iguais nesta comparação.
Como alternativa, uma expressão arbitrária pode determinar quais linhas devem ser consideradas distintas:
Neste caso, expressão é uma expressão de valor arbitrária avaliada para todas as linhas. Um conjunto de linhas para as quais todas as expressões são iguais são consideradas duplicadas, e somente a primeira linha do conjunto é mantida na saída. Deve ser observado que a “primeira linha” de um conjunto é imprevisível, a não ser que a consulta seja ordenada por um número suficiente de colunas para garantir a ordem única das linhas que chegam no filtro DISTINCT (o processamento de DISTINCT ON ocorre após a ordenação do ORDER BY).
A cláusula DISTINCT ON não faz parte do padrão SQL, sendo algumas vezes considerada um estilo ruim devido à natureza potencialmente indeterminada de seus resultados. Utilizando-se adequadamente GROUP BY e subconsultas no FROM esta construção pode ser evitada, mas geralmente é a alternativa mais fácil.
SELECT DISTINCT lista_de_seleção ...(Em vez de DISTINCT pode ser utilizada a palavra ALL para especificar o comportamento padrão de manter todas as linhas)
Como é óbvio, duas linhas são consideradas distintas quando têm pelo menos uma coluna diferente. Os valores nulos são considerados iguais nesta comparação.
Como alternativa, uma expressão arbitrária pode determinar quais linhas devem ser consideradas distintas:
SELECT DISTINCT ON (expressão [, expressão ...]) lista_de_seleção ...Neste caso, expressão é uma expressão de valor arbitrária avaliada para todas as linhas. Um conjunto de linhas para as quais todas as expressões são iguais são consideradas duplicadas, e somente a primeira linha do conjunto é mantida na saída. Deve ser observado que a “primeira linha” de um conjunto é imprevisível, a não ser que a consulta seja ordenada por um número suficiente de colunas para garantir a ordem única das linhas que chegam no filtro DISTINCT (o processamento de DISTINCT ON ocorre após a ordenação do ORDER BY).
A cláusula DISTINCT ON não faz parte do padrão SQL, sendo algumas vezes considerada um estilo ruim devido à natureza potencialmente indeterminada de seus resultados. Utilizando-se adequadamente GROUP BY e subconsultas no FROM esta construção pode ser evitada, mas geralmente é a alternativa mais fácil.
Resposta em até 24 horas! (grátis)Dúvidas?
Autor da matéria
Últimas matérias escritas pelo autor:
|
Redação Oficina da Net A Redação do Oficina da Net é composta por todos os integrantes da equipe do portal. Estamos abertos a indicações de matérias, entre em contato conosco solicitando sua dúvida, ou acesse nosso fórum. |
Últimas matérias escritas pelo autor:
30/08 - Dicas de segurança para smartphones co...
27/08 - Eleições: redes sociais dão mostras de...
23/08 - 5 dicas para aumentar a proteção no e-...
12/08 - Web Analytics - Só números não bastam
09/08 - Google Android OS
09/08 - Business Intelligence: é estratégia ou...
06/08 - Os desafios de recursos humanos nas em...
05/08 - Neutralidade da rede o que é?
02/08 - Nota Fiscal Eletrônica: cumpra a lei e...
29/07 - Saiba como ter segurança na internet d...
26/07 - Cloud Computing redesenha modelo de ne...
26/07 - O sucesso depende de manter foco?
07/07 - Usabilidade de interfaces para EAD
07/07 - Dicas para deixar o Firefox mais rápid...
27/08 - Eleições: redes sociais dão mostras de...
23/08 - 5 dicas para aumentar a proteção no e-...
12/08 - Web Analytics - Só números não bastam
09/08 - Google Android OS
09/08 - Business Intelligence: é estratégia ou...
06/08 - Os desafios de recursos humanos nas em...
05/08 - Neutralidade da rede o que é?
02/08 - Nota Fiscal Eletrônica: cumpra a lei e...
29/07 - Saiba como ter segurança na internet d...
26/07 - Cloud Computing redesenha modelo de ne...
26/07 - O sucesso depende de manter foco?
07/07 - Usabilidade de interfaces para EAD
07/07 - Dicas para deixar o Firefox mais rápid...
Matérias relacionadas
Últimas matérias
Últimas notícias
Dicas do canal
- Como criar um campo auto-increment no Po...
Para aqueles que usam MySQL, estão muito acostumad... - 10 dicas para iniciar em PostgreSQL
Como vejo muitas pessoas novas utilizando o Postg...







Como criar um campo auto-increment no PostgreSQL
O que você procura para sua vida profissional?
O planejamento agrega valor
E-mail marketing em 140 caracteres
Novos iPods, novo iOS, novo iTunes e nova Apple TV
Conheça as 100 primeiras cidades atendidas pelo Banda Larga ...
Linus Torvalds diz que mercado já se rendeu ao Linux