Informática, perguntado por 00001103564602sp, 4 meses atrás

As views permitem simplificar a forma como as consultas podem ser feitas pois uma view abstrai a complexidade das consultas, por exemplo consultas com muitas junções, funções de agregação e outras. Daí, uma consulta utiliza a view como se fosse uma tabela virtual cuja definição é baseada na consulta mais complexa.

Em um determinado sistema de compras, foi criada a seguinte view.
CREATE VIEW `COMPRAS_CLIENTES_VW AS (NOME, BAIRRO, DATA_NASC, SEXO, COD_CIDADE, CIDADE, DATA_COMPRA, VALOR) AS SELECT CLI.NOME, CLI.BAIRRO, CLI.DATA_NASC, CLI.SEXO, CID.COD_CIDADE, CID.DCR_CIDADE, CMP.DATA_COMPRA, CMP.VLR_COMPRA FROM CLIENTE CLI INNER JOIN COMPRA CMP ON CLI.COD_CLIENTE = CMP.COD_CLIENTE INNER JOIN CIDADE AS CID ON CLI.COD_CIDADE = CID.COD_CIDADE


Assinale qual sentença apresenta uma consulta correta feita com o uso da View.

SELECT NOME, COUNT(*) FROM COMPRAS_CLIENTES_VW GROUP BY NOME

SELECT NOME, VLR_COMPRA FROM CLIENTE

SELECT NOME, VLR_COMPRA FROM COMPRAS_CLIENTES_VW

SELECT NOME, CIDADE FROM CLIENTE

SELECT NOME, DCR_CIDADE FROM COMPRAS_CLIENTES_VW

Soluções para a tarefa

Respondido por YuriClaro
32

Resposta:

SELECT  NOME, COUNT(*)           FROM   COMPRAS_CLIENTES_VW GROUP BY NOME

Explicação:

A alternativa está correta pois o campo NOME está definido como um dos campos da VIEW no cabeçalho do CREATE VIEW e o count(*) vai contar quantas compras por cliente, via recurso de GROUP BY.  

Respondido por grodriguees77
1

Resposta:

SELECT NOME, COUNT(*) FROM COMPRAS_CLIENTES_VW GROUP BY NOME

Explicação:

Resposta correta. A alternativa está correta pois o campo NOME está definido como um dos campos da VIEW no cabeçalho do CREATE VIEW e o count(*) vai contar quantas compras por cliente, via recurso de GROUP BY.  

Perguntas interessantes