Desafio de Engenharia de Dados
O objetivo é trabalhar conceitos de consultas relacionais, agregações, funções PL/pgSQL e integração SQL → JSON, utilizando o PostgreSQL.
Criado em 24 de dezembro de 2025
🧠 Desafio de Engenharia de Dados
🎯 Objetivo
O objetivo deste desafio é trabalhar conceitos de:
Consultas relacionais
Agregações
Funções em PL/pgSQL
Integração SQL → JSON
Tudo isso utilizando o PostgreSQL.
🏢 Cenário
Você está trabalhando em uma empresa que precisa analisar dados de vendas e clientes.
Foi fornecido um banco de dados já estruturado com as seguintes tabelas:
clientesprodutospedidospedido_itens
Sua missão é importar o banco de dados disponibilizado e criar as views e funções solicitadas nos próximos tópicos.
📥 Importação e Inserts
Após importar o banco, execute os comandos abaixo para popular as tabelas iniciais:
INSERT INTO clientes (nome, cidade) VALUES
('Ana Souza', 'Curitiba'),
('Bruno Lima', 'Florianópolis'),
('Carla Mendes', 'Porto Alegre');
INSERT INTO produtos (nome, preco) VALUES
('Notebook Lenovo', 4200.00),
('Mouse Logitech', 120.00),
('Monitor LG 24"', 950.00),
('Teclado Mecânico Redragon', 380.00);
INSERT INTO pedidos (cliente_id, data_pedido, valor_total) VALUES
(1, '2025-11-10', 0), -- Pedido da Ana
(2, '2025-11-11', 0); -- Pedido do Bruno
🛒 Pedido 1 — Ana Souza
INSERT INTO pedido_itens (pedido_id, produto_id, quantidade, preco_unit) VALUES
(1, 1, 1, 4200.00), -- Notebook Lenovo
(1, 2, 1, 120.00); -- Mouse Logitech
🛒 Pedido 2 — Bruno Lima
INSERT INTO pedido_itens (pedido_id, produto_id, quantidade, preco_unit) VALUES
(2, 3, 2, 950.00), -- 2 Monitores LG
(2, 4, 1, 380.00); -- Teclado Mecânico
✅ O que você deve fazer?
A seguir estão as views e funções que você deverá implementar:
TipoNomeDemonstraConceitosViewvw_pedidos_detalhadosJOIN + cálculo de subtotalRelacionamentosViewvw_total_por_clienteGROUP BY + SUMAgregaçãoViewvw_pedidos_resumoCOUNT + SUMAgrupamentoViewvw_vendas_por_cidadeGROUP BY + ORDER BYAnálise por regiãoViewvw_produtos_mais_vendidosSUM + ORDER BY DESCRankingFunçãofn_calcula_total_pedidoSELECT INTO + COALESCEFunção escalarFunçãofn_clientes_vipHAVING + parâmetrosFiltro dinâmicoFunçãofn_produtos_mais_vendidosRetorno TABLEAgregaçãoFunçãofn_vendas_por_cidadeRetorno TABLE + JOINAgrupamento múltiploFunçãofn_pedido_jsonJSON_BUILD_OBJECTIntegração API / SQL
🚀 Boa sorte no desafio!