De acordo com o diagrama do esquema de banco de da...

Próximas questões
Com base no mesmo assunto
Ano: 2011 Banca: FUMARC Órgão: BDMG Prova: FUMARC - 2011 - BDMG - Analista de Sistemas |
Q165266 Banco de Dados
De acordo com o diagrama do esquema do banco de dados relacional abaixo, responda às questões de 47 a 51.

Imagem 031.jpg


De acordo com o diagrama do esquema de banco de dados relacional, escolha a sentença SQL que melhor responda à consulta “Listar o total de clientes que são depositantes (possuem conta) agrupados por uf e cidade do cliente”:
Alternativas

Comentários

Veja os comentários dos nossos alunos

o INNER JOIN traz todas as linhas e eu só quero linhas distintas por isso utilizo o DISTINCT
A princípio pensei que fosse a letra B. Mas repare que um cliente pode ter mais de uma conta! Com isso, a consulta da letra B poderia contar o mesmo cliente mais de uma vez dentro do agrupamento. Logo, é necessário utilizar o "DISTINCT c.id_cliente" para que um cliente que tem mais de uma conta seja contabilizado somente 1 vez dentro de seu agrupamento de UF e Cidade.
Portanto, a resposta é a letra C.

Que Modelagem mais estranha.... 

A opção B retorna a quantidade de depósitos realizados, uma vez que caso o mesmo cliente faça mais de um depósito teremos dois registros na tabela DEPOSITANTE com mesmo id_cliente. O DISTINCT na letra C é utilizado para eliminar retornar o total de cliente pois elimina as duplicações em caso de mais de um depósito.

SELECT c.sig_uf, c.nom_cidade, COUNT(DISTINCT c.id_cliente) FROM (CLIENTE AS c INNER JOIN DEPOSITANTE AS d ON c.id_cliente = d.id_cliente) GROUP BY c.sig_uf, c.nom_cidade [ ALTERNATIVA CORRETA ]

retorna n° registros distintos de id_cliente

SELECT c.sig_uf, c.nom_cidade, COUNT(c.id_cliente)

FROM (CLIENTE AS c INNER JOIN DEPOSITANTE AS d

ON c.id_cliente = d.id_cliente)

GROUP BY c.sig_uf, c.nom_cidade

retorna n° registros total de id_cliente, mesmo com id_cliente repetido. caso, o mesmo cliente seja depositante mais de 1 vez.

Clique para visualizar este comentário

Visualize os comentários desta questão clicando no botão abaixo