Você está na página 1de 3

1 - Apresente o valor total do estoque da tabela departamento;

SELECT SUM(estoque) AS valor_total_estoque


FROM produto;

Nesta consulta, usamos a função SUM() para calcular a soma dos valores na coluna
"estoque" da tabela "produto". Renomeamos o resultado como "valor_total_estoque"
para maior clareza.

2 - Selecionem o número total de clientes que existem no banco de dados;


SELECT COUNT(*) AS total_clientes
FROM cliente;

Usamos a função COUNT(*) para contar o número de registros na tabela "cliente".


Renomeamos o resultado como "total_clientes".

3 - Qual o nome e o preço do produto mais caro?


SELECT nome, preco
FROM produto
WHERE preco = (SELECT MAX(preco) FROM produto);

Esta consulta primeiro encontra o preço máximo usando SELECT MAX(preco) FROM
produto e depois seleciona o nome e o preço do produto que possui esse preço máximo
na tabela "produto".

4 - Selecione todos os produtos com seus respectivos departamentos.


SELECT p.nome AS produto, d.nome AS departamento
FROM produto p
JOIN departamento d ON p.departamento_codigo = d.codigo;

Usamos uma operação JOIN para combinar as tabelas "produto" e "departamento" com
base na chave estrangeira "departamento_codigo". Isso nos permite selecionar o nome
do produto e o nome do departamento relacionado.

5 - Quantos produtos há em cada departamento? Exiba o nome do departamento e a


quantidade de produtos que há em cada um.
SELECT d.nome AS departamento, COUNT(p.codigo) AS quantidade_produtos
FROM departamento d
LEFT JOIN produto p ON d.codigo = p.departamento_codigo
GROUP BY d.nome;

Utilizamos um LEFT JOIN para garantir que todos os departamentos sejam incluídos na
contagem, mesmo que não tenham produtos associados. Usamos COUNT(p.codigo) para
contar o número de produtos em cada departamento e agrupamos os resultados pelo
nome do departamento.

6 - Apresente os dados dos pedidos, incluindo nomes dos clientes e nomes dos
produtos que foram vendidos
SELECT c.nome AS cliente, p.nome AS produto
FROM pedido pe
JOIN cliente c ON pe.cliente_id = c.id
JOIN item_pedido ip ON pe.numero = ip.pedido_numero
JOIN produto p ON ip.produto_codigo = p.codigo;

Esta consulta usa operações JOIN para combinar as tabelas "pedido", "cliente",
"item_pedido" e "produto" para obter informações sobre os pedidos, incluindo os
nomes dos clientes e dos produtos vendidos.

7 - Mostre quantos pedidos foram feitos por mês no ano de 2021


SELECT EXTRACT(MONTH FROM data_pedido) AS mes, COUNT(*) AS total_pedidos
FROM pedido
WHERE EXTRACT(YEAR FROM data_pedido) = 2021
GROUP BY mes;

Usamos EXTRACT(MONTH FROM data_pedido) para extrair o mês da data de pedido e


contamos o número de pedidos para cada mês em 2021, agrupando os resultados pelo
mês.

8 - Mostre quanto foi faturado por mês (leve em conta o valor total de cada pedido)
SELECT EXTRACT(MONTH FROM data_pedido) AS mes, SUM(valor_final) AS
faturamento_mensal
FROM pedido
GROUP BY mes;

Utilizamos EXTRACT(MONTH FROM data_pedido) para extrair o mês da data de pedido e


calculamos a soma dos valores finais dos pedidos para cada mês, agrupando os
resultados pelo mês.

9 - Apresente os produtos pedidos por clientes que começam com a letra "A"
SELECT c.nome AS cliente, p.nome AS produto
FROM pedido pe
JOIN cliente c ON pe.cliente_id = c.id
JOIN item_pedido ip ON pe.numero = ip.pedido_numero
JOIN produto p ON ip.produto_codigo = p.codigo
WHERE c.nome LIKE 'A%';

Usamos a cláusula WHERE para filtrar os resultados para clientes cujos nomes
começam com a letra "A".

10 - Apresente o total de faturamento mensal desse eccomerce.


SELECT SUM(valor_final) AS faturamento_total
FROM pedido;

Nesta consulta, simplesmente somamos todos os valores finais dos pedidos na tabela
"pedido" para obter o faturamento total. O resultado será o faturamento total do e-
commerce, independentemente do mês.

11 - Apresente qual departamento vendeu mais produtos em 2021


SELECT d.nome AS departamento, COUNT(p.codigo) AS quantidade_produtos
FROM departamento d
LEFT JOIN produto p ON d.codigo = p.departamento_codigo
WHERE EXISTS (
SELECT 1
FROM pedido pe
JOIN item_pedido ip ON pe.numero = ip.pedido_numero
WHERE EXTRACT(YEAR FROM pe.data_pedido) = 2021
AND p.codigo = ip.produto_codigo
)
GROUP BY d.nome
ORDER BY quantidade_produtos DESC
LIMIT 1;

Esta consulta conta quantos produtos de cada departamento foram vendidos em pedidos
de 2021 e, em seguida, seleciona o departamento com o maior número de produtos
vendidos.

12 - Aprensente o nome e o endereço por completo em uma coluna (logradouro, numero,


complemento, bairro, cidade, estado e cep) de todos os clientes que realizaram
pedidos no departamento de "Autoajuda"
SELECT CONCAT_WS(', ', e.logradouro, e.numero, e.complemento, e.bairro, e.cidade,
e.estado, e.cep) AS endereco_completo, c.nome AS cliente
FROM cliente c
JOIN pedido p ON c.id = p.cliente_id
JOIN item_pedido ip ON p.numero = ip.pedido_numero
JOIN produto pr ON ip.produto_codigo = pr.codigo
JOIN endereco e ON c.id = e.cliente_id
WHERE pr.departamento_codigo = (SELECT codigo FROM departamento WHERE nome =
'Autoajuda');

Utilizamos CONCAT_WS() para unir os campos de endereço em uma única coluna e


garantimos que a consulta inclua apenas clientes que realizaram pedidos no
departamento de "Autoajuda".

13 - Selecione todos os cientes que possuam email do "@yahoo" na base de dados


SELECT *
FROM cliente
WHERE email LIKE '%@yahoo%';

Usamos a cláusula WHERE com o operador LIKE para encontrar todos os clientes cujos
endereços de e-mail contenham "@yahoo". O símbolo "%" é usado como curinga para
representar qualquer conjunto de caracteres antes ou depois de "@yahoo".

Você também pode gostar