Query para contar valores linhas repetidas em uma tabela SQL Server
Abaixo segue uma QUERY que da para ser utilizada para várias situações.
Veja alguns exemplos de uso:
A QUERY abaixo traz um limite máximo de dez resultados agrupados por uma coluna específica, que nesse caso a coluna se chama “ColunaX”.
WITH Registros as ( SELECT ROW_NUMBER() OVER (Partition by ColunaX order by ColunaX) AS Cont,* FROM TBL_TESTE ) SELECT * FROM Registros WHERE Cont <= 10
Explicando a query.
- WITH Registros as – Cria uma tabela temporária para armazenar os dados
- ROW_NUMBER() OVER (Partition by ColunaX order by ColunaX) AS Cont – Faz uma contagem em numero sequencial (1,2,3,4…) das ocorrências com valores repetidos em “ColunaX”.
- SELECT * FROM Registros WHERE Cont <= 10 – Retorna até no máximo dez para cada registro repetido
A QUERY abaixo exclui valores repetido em uma tabela.
WITH Registros as ( SELECT ROW_NUMBER() OVER (Partition by ColunaX order by ColunaX) AS Cont,* FROM TBL_TESTE ) --DELETE Registros WHERE Cont > 1
Explicando a query
- WITH Registros as – Cria uma tabela temporária para armazenar os dados
- ROW_NUMBER() OVER (Partition by ColunaX order by ColunaX) AS Cont – Faz uma contagem em numero sequencial (1,2,3,4…) das ocorrências com valores repetidos em “ColunaX”.
- DELETE Registros WHERE Cont > 1 – Exclui os valores repetido mantendo somente um Registro
Retornando apenas os valores máximos ou mínimos.
Pegando como exemplo a tabela conforme imagem abaixo.

A técnica utiliza LEFT JOIN na mesma tabela com critérios de ser o mesmo artista e ter o número de execuções maior do que o registro da tabela original.
Ao final, a consulta retorna apenas os registros que não foram relacionados (valor NULL no LEFT JOIN), que são os
registros sem nenhum outro com número de execuções maior – ou seja, os que a coluna plays é na verdade MAX(plays) daquele artista.
SELECT m1.id_artista, m1.nome, m1.plays FROM musica m1 LEFT JOIN musica m2 ON m1.id_artista = m2.id_artista AND m1.plays < m2.plays WHERE m2.id IS NULL
Essa fica sendo, então, a forma mais eficiente de recuperar o registro com maior valor em determinada coluna, já que não é necessário nenhum tipo de subquery e nem mesmo GORUP BY. E se quiser o menor valor, basta trocar o sinal.
Com informações de Imasters
Olá! Sou Fábio Bmed — fundador da Metapax, consultoria estratégica de posicionamento e crescimento para negócios, e criador da MapexMind, um método de neuropsicologia aplicada voltado à compreensão prática da mente humana. Também sou o criador do blog FabioBmed.com.br.
Desde 2006 trabalho com tecnologia, marketing digital e análise de sistemas complexos. Mas os sistemas que mais me fascinam hoje são os que carregamos dentro da cabeça.
Estou entrando na psicologia, com foco em neuropsicologia — a ciência que explica por que você pensa, decide e se comporta do jeito que faz. Essa transição não é um desvio de rota: é a evolução natural de quem passou décadas entendendo como sistemas funcionam — e percebeu que o mais complexo de todos ainda estava por ser mapeado.
Ao longo dessa trajetória, criei dois projetos que sintetizam essa visão.
A Metapax nasceu da percepção de que negócios não crescem por acaso. Crescem quando existe uma estrutura clara de autoridade, presença e experiência do cliente. Depois de mais de duas décadas liderando operações digitais e analisando padrões de crescimento empresarial, transformei esse entendimento no Método APA — Autoridade, Presença e Atendimento — aplicado a empresas e profissionais que querem crescer com previsibilidade e posicionamento sólido.
Já a MapexMind surgiu de outro tipo de investigação: entender a arquitetura da mente humana. O projeto aplica neuropsicologia à vida real para ajudar pessoas a compreenderem padrões emocionais, cognitivos e comportamentais — próprios ou de quem amam — traduzindo conceitos complexos em clareza prática e utilizável.
No fundo, os dois projetos partem da mesma pergunta:
Como sistemas funcionam por trás da superfície?
Negócios, comportamento, decisões, relações humanas, tecnologia, marketing e mente — tudo aqui é analisado pelo mesmo prisma: estrutura, padrões e a ciência por trás de como as coisas realmente funcionam.
Este blog é o ponto de encontro dessas áreas. Um espaço onde tecnologia, psicologia, neurociência, comportamento humano, marketing e filosofia prática deixam de ser assuntos separados e passam a conversar entre si.
Publicação Criada em: novembro 11, 2013
Atualizado em: março 19, 2025 3:59 pm


olá FabioBmed
achei muito interessante seu artigo sobre
Query para contar valores linhas repetidas em uma tabela SQL Server
aproveito para gerar uma questão que esta me quebrando a cabeça.
tenho uma tabela apenas, com um id em Char(2) e com 15 números gerados aleatoriamente do 01 ao 25, todos em Char(2), esta tabela contem mais de mil resultados, como eu contaria as linhas com mais de 10 números repetidos? como são 15 números tirados de 25 sempre vai ter repetidos.