Questão FC369499
Maria executou as seguintes instruções em SQL para criação de tabelas: CREATE TABLE T1 ( id_A INT, a1 CHAR(10), a2 CHAR(10)); CREATE TABLE T2 ( id_B INT, b1 CHAR(10), b2 CHAR(10));
Linguagem SQL
FGV · 2024
Maria executou as seguintes instruções em SQL para criação de tabelas:
CREATE TABLE T1 (
id_A INT,
a1 CHAR(10),
a2 CHAR(10));
CREATE TABLE T2 (
id_B INT,
b1 CHAR(10),
b2 CHAR(10));
CREATE TABLE T3 (
id_A INT,
id_B INT,
c1 CHAR(10),
c2 CHAR(10));
Maria deseja listar a quantidade e os respectivos dados de T1 que possuem pelo menos 1 e no máximo 5 relacionamentos com T2. Para isso, ela deve utilizar a instrução:
- SELECT COUNT(c.id_A), a.a1, a.a2 FROM T1 a INNER JOIN T3 c ON c.id_A = a.id_A WHERE COUNT(c.id_A) < = 5;
- SELECT a.id_A, a.a1, a.a2
FROM T1 a, T2 b
LEFT OUTER JOIN T3 c ON c.id_A = a.id_A
LEFT OUTER JOIN T3 c ON c.id_B = b.id_B
GROUP BY a.a1, a.a2
HAVING COUNT(a.id_A) < = 5;
- SELECT COUNT(a.id_A), a.a1, a.a2
FROM T1 a
INNER JOIN T3 c ON c.id_A = a.id_A
WHERE a.id_A < = 5;
- SELECT COUNT(a.id_A), a.*
FROM T1 a
INNER JOIN T3 c ON c.id_A = a.id_A
GROUP BY a.a1, a.a2
HAVING COUNT(a.id_A) < = 5;
- SELECT a.id_A, a.a1, a.a2
FROM T1 a
RIGHT OUTER JOIN T3 c ON c.id_A = a.id_A
GROUP BY a.id_A, a.a1, a.a2
HAVING COUNT(a.id_A) < = 5;
Mostrar resposta e comentário
Gabarito
D
Comentário do professor
A instrução correta usa SELECT COUNT e a.* para retornar, respectivamente, a quantidade de ocorrências ligadas em T3 e todas as colunas de T1.
O INNER JOIN com c (c.id_A = a.id_A) garante que somente os registros de T1 que possuem pelo menos uma correspondência em T3 sejam considerados.
O GROUP BY sobre a.a1, a.a2 agrupa as linhas por combinação desses atributos, permitindo aplicar a função agregadora COUNT para cada grupo.
A cláusula HAVING filtra o resultado da agregação, mantendo só os grupos cuja contagem satisfaça \(COUNT(a.id_A) \le 5\). Assim obtemos T1 com mínimo 1 e máximo 5 relacionamentos em T3.
Os aliases (a e c) tornam a consulta mais legível e evitam ambiguidade ao referenciar colunas nas cláusulas de junção, agrupamento e filtro.
Conteúdo do catálogo FC Concursos · Atualizado em