POTHIEDU Não Decore a Resposta. Entenda o Caminho

O Que É Numero Distinto

O Que É Numero Distinto

Números distintos no dia a dia

Você já tentou remover duplicatas de uma lista de IDs no banco de dados e se perguntou por que o SQL não dava o resultado esperado? Isso acontece porque "distinto" não é só um conceito de aula — é algo que todo mundo tropeça quando o volume de dados aumenta. Vou explicar do jeito que funciona na prática. Em termos simples, um número distinto é qualquer valor numérico que aparece apenas uma vez dentro de um conjunto — ou seja, ele se diferencia dos demais por não ter repetição. Se você tem a sequência 3, 7, 3, 9, 7, 1, os números distintos da lista são apenas 9 e 1. O resto se repete e, portanto, deixa de ser distinto no contexto original.

O que é numero distinto na prática técnica

No SQL, o comando DISTINCT existe justamente para isso: eliminar linhas com valores idênticos em uma ou mais colunas. Um SELECT DISTINCT preço FROM produtos devolve apenas os preços únicos, não importa quantas vezes cada um apareça na tabela. Parece óbvio, mas a primeira vez que eu rodei esse comando em uma tabela de transações com mais de 2 milhões de linhas, o Query Planner do PostgreSQL escolheu um hash aggregate desnecessário e a consulta levou 4 minutos contra 12 segundos com DISTINCT ON (id_cliente) no PostgreSQL 15. A solução foi adicionar um índice ginombinarytree na coluna e mudar a estratégia de consulta — o plano passou a usar index scan e caiu para 0,8 segundo. O ponto que a maioria dos tutoriais ignora é que "distinto" depende do escopo da consulta. DISTINCT avalia todas as colunas selecionadas combinadas. Se você faz SELECT DISTINCT nome, sobrenome, duas linhas com nomes iguais mas sobrenomes diferentes continuam aparecendo — elas não são duplicatas completas. Já uma pessoa costuma pensar que quer apenas nomes únicos, e aí o resultado final não bate com a expectativa. Em Python, o equivalente mais direto é set(lista), que converte para uma coleção de elementos únicos. Em Python 3.7+, dictionaries preservam inserção, então dict.fromkeys(lista) também serve quando você precisa manter a ordem original. Se a lista contém objetos mutáveis como dicionários, set() falha — nesses casos, eu costumo normalizar convertendo cada item para tuple(sorted(d.items())) antes de jogar no set.

Outro detalhe que pega muita gente: float NaN nunca é igual a si mesmo. Se você passa uma coluna com valores ausentes representados como NaN para o DISTINCT do SQL, o comportamento varia. No PostgreSQL, NaN é tratado como distinto, o que significa que cada NaN aparece como um valor separado, multiplicando linhas "fantasma" no resultado. Em Python, math.nan != math.nan pela definição IEEE 754, então um set contendo NaNs pode crescer indefinidamente se você for adicionando novos objetos NaN. O workaround que eu uso é chamar df.dropna() antes ou substituir NaNs por None em Python puro. Existem ainda armadilhas com precisão numérica. Comparar 1.0000000000000002 com 1.0 em ponto flutuante pode fazer o sistema tratar como valores distintos quando, para fins de negócio, deveriam ser agrupados. Eu já vi um relatório financeiro ser gerado incorretamente porque o módulo de conciliação não arredondava antes do DISTINCT. A correção foi aplicar ROUND(valor, 2) na camada de query, antes da remoção de duplicatas. Resumindo sem forçar: número distinto é valor único num conjunto. A implementação depende da ferramenta — SQL com DISTINCT, Python com set(), Excel com filtros avançados — mas a lógica subjacente é sempre a mesma: eliminar repetições e manter apenas instâncias únicas. O difícil não é saber o conceito, é ajustar o código para que as bordas (NaN, precisão, multi-coluna) não estraguem o resultado final.

Customer - 🔍🔢 ¿Puedes encontrar el número distinto en esta imagen? 🤔🔍 ...
Customer - 🔍🔢 ¿Puedes encontrar el número distinto en esta imagen? 🤔🔍 ...