Voltar para os desafios
Dev Junior
Engenharia de Dados
Destaque
0 submissões

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

Sobre o Desafio

🧠 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:

  • clientes

  • produtos

  • pedidos

  • pedido_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!

Enviar Sua Solução
Compartilhe sua solução para este desafio. Preencha o formulário abaixo com seus dados e o link da sua solução.

Cole o link da sua solução (GitHub, CodePen, CodeSandbox, etc.)