FC ConcursosFC Concursos

Questão FC372830

Considere a existência de duas tabelas relacionadas em um banco de dados: Pedidos e Transportador. A tabela Pedidos possui 2 campos numéricos: PedidoID (chave primária) e Transport

Linguagem SQL

FCC · 2019

Considere a existência de duas tabelas relacionadas em um banco de dados: Pedidos e Transportador. A tabela Pedidos possui 2 campos numéricos: PedidoID (chave primária) e TransportadorID (chave estrangeira). A tabela Transportador possui o campo TransportadorID (chave primária, numérico) e TransportadorNome (cadeia de caracteres). Para listar o número de Pedidos de cada Transportador utiliza-se a instrução SQL:

  1. SELECT Transportador.TransportadorNome, COUNT(Pedidos.PedidoID)AS “NumeroPedidos” FROM Pedidos RIGHT JOIN FROM Pedidos ON Pedidos.TransportadorID = Transportador.TransportadorID ORDER BY TransportadorNome;
  2. SELECT Transportador.TransportadorNome, COUNT(Pedidos.PedidoID) AS NumeroPedidos FROM Pedidos FULL JOIN Transportador WHERE Pedidos.TransportadorID = Transportador.TransportadorID GROUPBY TransportadorNome;
  3. SELECT Transportador.TransportadorNome, COUNT(Pedidos.PedidoID) AS “NumeroPedidos” FROM Pedidos, Transportador INNER JOIN ON Pedidos.TransportadorID = Transportador.TransportadorID GROUP BY TransportadorNome;
  4. SELECT Transportador.TransportadorNome, COUNT(Pedidos.PedidoID) AS NumeroPedidos FROM Pedidos LEFT JOIN Transportador ON Pedidos.TransportadorID = Transportador.TransportadorID ORDER BY TransportadorNome;
  5. SELECT Transportador.TransportadorNome, COUNT(Pedidos.PedidoID) AS NumeroPedidos FROM Pedidos LEFT JOIN Transportador ON Pedidos.TransportadorID = Transportador.TransportadorID GROUP BY TransportadorNome;
Mostrar resposta e comentário

Gabarito

Errado

Comentário do professor

A consulta correta usa FROM Pedidos LEFT JOIN Transportador ON Pedidos.TransportadorID = Transportador.TransportadorID para manter todas as linhas de Pedidos e trazer o nome do transportador quando existir.

O agrupamento por TransportadorNome (GROUP BY) faz com que as linhas sejam consolidadas por transportador, permitindo obter a quantidade de pedidos por cada um.

A função COUNT(Pedidos.PedidoID) conta os pedidos em cada grupo; por usar a chave primária, não conta valores nulos e assim retorna o número correto de pedidos associados ao respectivo transportador. O alias NumeroPedidos apenas nomeia a coluna de resultado.

Resultado prático: cada linha do resultado mostra o TransportadorNome e a quantidade de pedidos dele; pedidos sem transportador aparecem no grupo com nome nulo, garantindo que todas as ordens sejam consideradas.

Conteúdo do catálogo FC Concursos · Atualizado em

Continue aprendendo