devterview_$ iniciar simulação

`COUNT(*)` x `COUNT(coluna)` x `COUNT(DISTINCT coluna)`

FácilJúniorConsultas

Pergunta

Qual a diferença entre `COUNT(*)`, `COUNT(coluna)` e `COUNT(DISTINCT coluna)`?

Resposta esperada

`COUNT(*)` conta linhas — todas, inclusive as com NULL em qualquer coluna. `COUNT(coluna)` conta linhas em que aquela coluna NÃO é NULL (útil pra saber quantos registros têm o campo preenchido). `COUNT(DISTINCT coluna)` conta quantos valores diferentes e não-nulos existem naquela coluna. Exemplo: numa tabela de pedidos com 100 linhas, onde 90 têm `cupom` preenchido e há 12 cupons distintos — `COUNT(*)` = 100, `COUNT(cupom)` = 90, `COUNT(DISTINCT cupom)` = 12. Confundir os três leva a métricas erradas (ex: reportar 'clientes' quando na verdade contou pedidos).

Por que perguntam isso

Flashcard júnior. O erro que gera bug de relatório: usar `COUNT(*)` achando que conta valores únicos, ou `COUNT(coluna)` esquecendo que NULL não entra.

#count#distinct#agregacao#null
publicidade

Relacionadas