Para responder à questão, considere um banco de dados relacional que possui
duas tabelas, chamadas de tabela_a e tabela_b, contendo o formato e os valores abaixo:
Qual o resultado esperado a partir da execução do comando SQL abaixo?select count(*) from tabela_a where id<>id_b;
A4
B3
C2
D1
E0
Revelar gabarito e comentário▾
GabaritoB — 3
Comentário gerado por IA. É um apoio ao estudo, ancorado em fontes, mas pode conter imprecisões — confira sempre na fonte oficial (lei, súmula, edital e gabarito da banca). Encontrou um erro? Use “Reportar”.
Resolução
Gabarito: letra B — a conta chega a 3 — alternativa B.
A ideia por trás
O comando SELECT COUNT(*) é uma função de agregação do SQL que conta quantas linhas de uma tabela satisfazem uma condição. A condição é escrita no WHERE, e o banco avalia essa condição para cada linha individualmente, somando apenas as que forem verdadeiras.
A condição id <> id_b compara duas colunas da mesma linha. O operador <> significa 'diferente de'. Para cada linha, o banco verifica se o valor de id é diferente do valor de id_b; se for, a linha entra na contagem. Se os valores forem iguais, a linha é ignorada. É uma comparação linha a linha, sem junção entre tabelas.
Esta questão cobra exatamente a interpretação da comparação de desigualdade entre colunas da mesma tabela e o efeito do COUNT(*) sobre ela. O passo decisivo é avaliar cada linha e contar apenas as que atendem à condição.
O que a questão dá
comando SQL: select count(*) from tabela_a where id<>id_b
tabela_a com colunas id e id_b
dados da tabela (ilustrativos): (1,2), (2,2), (3,4), (4,4), (5,6)
O que queremos: o número de linhas da tabela_a em que o valor de id é diferente do valor de id_b
Passo 1 — Listar as linhas da tabela
Para saber quantas linhas serão contadas, precisamos primeiro ver os dados que estão na tabela. O comando não junta tabelas, então cada linha é avaliada sozinha.
NÃO CAIA NESSA!
Esquecer que a tabela tem 5 linhas e tentar adivinhar o resultado sem olhar os dados.
Passo 2 — Comparar id com id_b em cada linha
A condição do WHERE é avaliada linha a linha. Precisamos ver, para cada linha, se o valor de id é diferente do valor de id_b. Isso é o coração da consulta.
Por que esta fórmula: O operador <> é o de desigualdade: retorna verdadeiro quando os dois valores são diferentes, e falso quando são iguais. O COUNT(*) conta apenas as linhas onde a condição é verdadeira.
Linhas 1, 3 e 5 têm id diferente de id_b; linhas 2 e 4 têm iguais
NÃO CAIA NESSA!
Confundir <> com = e contar as linhas iguais em vez das diferentes.
Passo 3 — Contar as linhas que passaram na condição
O COUNT(*) soma exatamente as linhas que tiveram condição verdadeira. Como já identificamos quais são, agora é só contar.
Por que esta fórmula: COUNT(*) é a função que conta linhas; ela não precisa de argumento específico, conta todas as linhas que o WHERE deixou passar.
NÃO CAIA NESSA!
Contar todas as 5 linhas, esquecendo que as linhas 2 e 4 não atendem à condição.