PessoALL,
Caso queira complementar seu exercício criando a tabela e montando uma massa de testes, segue:
CRIAR O BANCO DE DADOS:
CREATE TABLE tb_object_trabalha_em (
Cpf_Funcionario varchar(11),
JSONVALUE json
);
MASSA DE TESTES:
INSERT INTO tb_object_trabalha_em (Cpf_Funcionario, JSONVALUE)
VALUES ('111222333', '{"Cpf_Funcionario":"111222333","Numero_Projeto":"5","Horas":"30"}'),
('98701011430', '{"Cpf_Funcionario":"98701011430","Numero_Projeto":"1","Horas":"40"}'),
('98701011430', '{"Cpf_Funcionario":"98701011430","Numero_Projeto":"3","Horas":"120"}'),
('25328357701', '{"Cpf_Funcionario":"25328357701","Numero_Projeto":"3","Horas":"160"}'),
('64511115540', '{"Cpf_Funcionario":"64511115540","Numero_Projeto":"2","Horas":"160"}'),
('36210837662', '{"Cpf_Funcionario":"36210837662","Numero_Projeto":"1","Horas":"50"}'),
('36210837662', '{"Cpf_Funcionario":"36210837662","Numero_Projeto":"2","Horas":"60"}'),
('36210837662', '{"Cpf_Funcionario":"36210837662","Numero_Projeto":"3","Horas":"50"}'),
('33344555587', '{"Cpf_Funcionario":"33344555587","Numero_Projeto":"3","Horas":"80"}'),
('33344555587', '{"Cpf_Funcionario":"33344555587","Numero_Projeto":"2","Horas":"80"}'),
('97313536402', '{"Cpf_Funcionario":"97313536402","Numero_Projeto":"5","Horas":"70"}'),
('97313536402', '{"Cpf_Funcionario":"97313536402","Numero_Projeto":"2","Horas":"20"}'),
('97313536402', '{"Cpf_Funcionario":"97313536402","Numero_Projeto":"4","Horas":"70"}'),
('07526572325', '{"Cpf_Funcionario":"07526572325","Numero_Projeto":"6","Horas":"65"}'),
('07526572325', '{"Cpf_Funcionario":"07526572325","Numero_Projeto":"7","Horas":"65"}'),
('07526572325', '{"Cpf_Funcionario":"07526572325","Numero_Projeto":"5","Horas":"30"}'),
('73682332235', '{"Cpf_Funcionario":"73682332235","Numero_Projeto":"7","Horas":"55"}'),
('73682332235', '{"Cpf_Funcionario":"73682332235","Numero_Projeto":"5","Horas":"50"}'),
('73682332235', '{"Cpf_Funcionario":"73682332235","Numero_Projeto":"6","Horas":"55"}'),
('11570566879', '{"Cpf_Funcionario":"11570566879","Numero_Projeto":"6","Horas":"80"}'),
('11570566879', '{"Cpf_Funcionario":"11570566879","Numero_Projeto":"7","Horas":"80"}'),
('41199543829', '{"Cpf_Funcionario":"41199543829","Numero_Projeto":"6","Horas":"32"}'),
('41199543829', '{"Cpf_Funcionario":"41199543829","Numero_Projeto":"7","Horas":"32"}'),
('41199543829', '{"Cpf_Funcionario":"41199543829","Numero_Projeto":"11","Horas":"32"}'),
('41199543829', '{"Cpf_Funcionario":"41199543829","Numero_Projeto":"9","Horas":"32"}'),
('41199543829', '{"Cpf_Funcionario":"41199543829","Numero_Projeto":"8","Horas":"32"}');
SELECIONAR OS DADOS:
SELECT Cpf_Funcionario,
REPLACE(json_extract(JSONVALUE,"$.Cpf_Funcionario"),"""","") as Cpf_Funcionario,
REPLACE(json_extract(JSONVALUE,"$.Numero_Projeto"),"""","") as Numero_Projeto,
REPLACE(json_extract(JSONVALUE,"$.Horas"),"""","") as Horas
FROM tb_object_trabalha_em
WHERE json_extract(JSONVALUE,"$.Numero_Projeto") = "1";
EXERCÍCIO FÁCIL:
Listar o TOTAL de horas trabalhadas em TODOS os projetos por CADA gerente de projeto (Cpf_Funcionario).
Por favor leia a documentação do MySQL:
==========================================================
11.5 O tipo de dados JSON
https://dev.mysql.com/doc/refman/8.0/en/json.html
==========================================================
RESPOSTA DO EXERCÍCIO FÁCIL:
SELECT REPLACE(json_extract(JSONVALUE, "$.Cpf_Funcionario"),"""","") as Numero_Projeto,
SUM(json_extract(JSONVALUE, "$.Horas")) as Horas
FROM tb_object_trabalha_em
GROUP BY json_extract(JSONVALUE, "$.Cpf_Funcionario")
ORDER BY CONVERT(json_extract(JSONVALUE, "$.Cpf_Funcionario"), UNSIGNED);
[]'s,
Fabio I.