Solucionado (ver solução)
Solucionado
(ver solução)
1
resposta

Minha resposta

Olá. Tudo bem?

Segue minha solução:

-- Criação da tabela
CREATE TABLE tb_object_trabalha_em (
    id INT AUTO_INCREMENT PRIMARY KEY,
    JSONVALUE JSON
);

-- Inserção de dados de exemplo
INSERT INTO tb_object_trabalha_em (JSONVALUE) VALUES
('{
  "Cpf_Funcionario": "111222333",
  "Numero_Projeto": "5",
  "Horas": 30
}'),
('{
  "Cpf_Funcionario": "1112223334",
  "Numero_Projeto": "4",
  "Horas": 25
}'),
('{
  "Cpf_Funcionario": "1112223333",
  "Numero_Projeto": "3",
  "Horas": 21
}'),
('{
  "Cpf_Funcionario": "1112223332",
  "Numero_Projeto": "2",
  "Horas": 44
}'),
('{
  "Cpf_Funcionario": "111222331",
  "Numero_Projeto": "1",
  "Horas": 34
}');


-- Obtém a média das horas trabalhadas
SELECT 
    AVG(JSON_EXTRACT(JSONVALUE, "$.Horas")) AS media_horas
FROM tb_object_trabalha_em;
1 resposta
solução!

Oii, Roberto! Tudo joia?

Seu código está no caminho certo, parabéns! A consulta que você trouxe é baseada para obter a média das horas trabalhadas. E, seguindo o exercício, também é possível construir uma consulta para obter a média de horas trabalhadas por projeto.

Caso queira implementar em seu código, você pode se inspirar na versão que o Instrutor deixou no botão "Ver opinião do Instrutor" na atividade. Ou no código abaixo, como exemplo:

-- Criação da tabela
CREATE TABLE tb_object_trabalha_em (
    id INT AUTO_INCREMENT PRIMARY KEY,
    JSONVALUE JSON
);

-- Inserção de dados de exemplo
INSERT INTO tb_object_trabalha_em (JSONVALUE) VALUES
('{
  "Cpf_Funcionario": "111222333",
  "Numero_Projeto": "5",
  "Horas": 30
}'),
('{
  "Cpf_Funcionario": "1112223334",
  "Numero_Projeto": "4",
  "Horas": 25
}'),
('{
  "Cpf_Funcionario": "1112223333",
  "Numero_Projeto": "3",
  "Horas": 21
}'),
('{
  "Cpf_Funcionario": "1112223332",
  "Numero_Projeto": "2",
  "Horas": 44
}'),
('{
  "Cpf_Funcionario": "111222331",
  "Numero_Projeto": "1",
  "Horas": 34
}');

-- Obtém a média das horas trabalhadas por projeto
SELECT 
    JSON_EXTRACT(JSONVALUE, "$.Numero_Projeto") AS Numero_Projeto,
    AVG(JSON_EXTRACT(JSONVALUE, "$.Horas")) AS media_horas
FROM tb_object_trabalha_em
GROUP BY Numero_Projeto;

No exemplo, a consulta agrupa todos os registros pelo número do projeto e calculando a média de horas trabalhadas para cada um desses grupos.

Continue se empenhando e dedicando aos estudos e qualquer dúvida, compartilhe no fórum.

Bons estudos, Roberto!