terça-feira, 3 de maio de 2011

Dica: encontrando ocorrências duplicadas em um result set

A dica abaixo não é nada misteriosa, mas eu francamente como uso pouco funções agregadas no dia a dia demorei a montar a consulta. A situação é a seguinte: em determinado result set, qual ou quais combinações de determinadas colunas aparecem mais de uma vez? Um exemplo prático, se as colunas em questão são uma chave primária para inserir em uma outra tabela, quais as linhas que estão dando problema de PK duplicada? No exemplo abaixo, "coluna1, coluna2, coluna3, ..." representa as colunas que não podem ser duplicadas (ou que se deseja saber quantas vezes ocorrem).

SELECT coluna1, coluna2, coluna3, ...
                   
FROM   tabela(s)
WHERE  condição 


GROUP BY coluna1, coluna2, coluna3, ...


HAVING COUNT (*) > 1

Nenhum comentário :

Postar um comentário