{"id":22275919,"url":"https://github.com/mairondc21/teste_mairon","last_synced_at":"2025-03-25T17:26:30.456Z","repository":{"id":262817334,"uuid":"888448970","full_name":"Mairondc21/teste_Mairon","owner":"Mairondc21","description":"Teste realizado em excel e sql","archived":false,"fork":false,"pushed_at":"2024-11-14T13:32:21.000Z","size":134,"stargazers_count":0,"open_issues_count":0,"forks_count":0,"subscribers_count":1,"default_branch":"main","last_synced_at":"2025-01-30T15:25:03.766Z","etag":null,"topics":["excel","modelagem","sql","sql-server"],"latest_commit_sha":null,"homepage":"","language":null,"has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":null,"status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/Mairondc21.png","metadata":{"files":{"readme":"README.md","changelog":null,"contributing":null,"funding":null,"license":null,"code_of_conduct":null,"threat_model":null,"audit":null,"citation":null,"codeowners":null,"security":null,"support":null,"governance":null,"roadmap":null,"authors":null,"dei":null,"publiccode":null,"codemeta":null}},"created_at":"2024-11-14T12:21:14.000Z","updated_at":"2024-11-14T13:34:50.000Z","dependencies_parsed_at":"2024-11-14T13:26:43.391Z","dependency_job_id":"154755f1-d788-4197-856c-ef9be9de747a","html_url":"https://github.com/Mairondc21/teste_Mairon","commit_stats":null,"previous_names":["mairondc21/teste_mairon"],"tags_count":0,"template":false,"template_full_name":null,"repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/Mairondc21%2Fteste_Mairon","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/Mairondc21%2Fteste_Mairon/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/Mairondc21%2Fteste_Mairon/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/Mairondc21%2Fteste_Mairon/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/Mairondc21","download_url":"https://codeload.github.com/Mairondc21/teste_Mairon/tar.gz/refs/heads/main","host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":245509401,"owners_count":20626982,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2022-07-04T15:15:14.044Z","host_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub","repositories_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories","repository_names_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repository_names","owners_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners"}},"keywords":["excel","modelagem","sql","sql-server"],"created_at":"2024-12-03T14:12:52.468Z","updated_at":"2025-03-25T17:26:30.431Z","avatar_url":"https://github.com/Mairondc21.png","language":null,"funding_links":[],"categories":[],"sub_categories":[],"readme":"# Teste - Mairon Duarte Costa\n## **Introdução do projeto**\n\nEsse projeto é a junção dos dois testes ( teste_excel, teste_sql_perguntas_(1) ), fiz o teste de word/sql de forma que seja possível executar as suas etapas.\n\n## **Arquitetura do projeto**\n\n![image.png](img/modelagem_sql.png)\n\n## **Pré-requisitos**\n\nPara esse projeto foi utilizado o SQL-Server, para a execução da pasta **src/** tenha o **SQL Server Management Studio 20** instalado.\n\n1. Clone esse repositorio\n\n```bash\n\ngit clone https://github.com/Mairondc21/teste_Mairon.git\n```\n2. Abra o SQL Server Management Studio\n\n3. Execute a primeira linha src/create_table.sql, Certifique-se de Criar também o Database mercantil\n\n```sql\nCREATE DATABASE mercantil;\n```\n4. Execute o resto do arquivo\n```sql\nUSE mercantil;\nCREATE TABLE PESSOA (\n    COD_PESSOA INT PRIMARY KEY NOT NULL,\n    TIPO_PESSOA VARCHAR(1) NOT NULL,\n    NOME VARCHAR(100) NOT NULL,\n    CPF VARCHAR(11) NULL,\n    CNPJ VARCHAR(14) NULL,\n    SEXO VARCHAR(1) NULL,\n    ESTADO_CIVIL VARCHAR(20) NULL\n);\n\nCREATE TABLE CLIENTE (\n    COD_PESSOA INT NOT NULL,\n    COD_AG INT NOT NULL,\n    DATA_RFC DATE NOT NULL,\n    MAT_GERENTE INT NOT NULL,\n    PRIMARY KEY (COD_PESSOA, COD_AG, DATA_RFC),\n    FOREIGN KEY (COD_PESSOA) REFERENCES PESSOA(COD_PESSOA)\n);\n\nINSERT INTO PESSOA (COD_PESSOA, TIPO_PESSOA, NOME, CPF, CNPJ, SEXO, ESTADO_CIVIL) VALUES\n(1, 'F', 'Maria Silva', '12345678901', NULL, 'F', 'Solteira'),\n(2, 'F', 'João Souza', '09876543210', NULL, 'M', 'Casado'),\n(3, 'J', 'Empresa XYZ Ltda', NULL, '12345678000199', NULL, NULL),\n(4, 'F', 'Mario Costa Silva', '55687700468',NULL ,'M', 'Casado'),\n(5, 'F', 'Lanna Maria', '65429733365', NULL, 'F', 'Viuva');\n\nINSERT INTO CLIENTE (COD_PESSOA, COD_AG, DATA_RFC, MAT_GERENTE) VALUES\n(1, 101, '2022-03-10', 201),\n(2, 102, '2023-03-10', 202),\n(1, 103, '2022-06-01', 203),\n(3, 105, '2022-01-01', 204),\n(4, 105, '2022-01-01', 205);\n```\n\n5. Execute o arquivo src/respostas.sql - Não precisa executar a 1) pergunta\n\n```sql\n--2) Selecione o CPF, o NOME e o SEXO de todas as pessoas físicas (TIPO_PESSOA = ‘F’) que tenha o nome ‘SILVA’.\nSELECT \n\tCPF,\n\tNOME,\n\tSEXO\nFROM dbo.PESSOA\nWHERE TIPO_PESSOA = 'F' AND NOME LIKE '%SILVA%';\n\n-- 3)Atualize o campo MAT_GERENTE da tabela CLIENTE para 99999, onde a data de referência (DATA_RFC) for menor que ‘2022-04-01’.\n\nUPDATE dbo.CLIENTE\nSET MAT_GERENTE = 99999\nWHERE DATA_RFC \u003c '2022-04-01';\n\n\n-- 4) Mostre a quantidade de clientes (COD_PESSOA) que cada gerente (MAT_GERENTE) possui na data de referência = ‘2022-06-01’. \n\nSELECT\n\tc.DATA_RFC,\n\tc.MAT_GERENTE,\n\tCOUNT(c.COD_PESSOA)OVER (PARTITION BY c.MAT_GERENTE)AS QTD_CLIENTE\nFROM dbo.CLIENTE c\nLEFT JOIN dbo.PESSOA p ON c.COD_PESSOA = p.COD_PESSOA\nWHERE DATA_RFC = '2022-06-01';\n\n\n-- 5) Selecione a quantidade de clientes pessoa jurídica (TIPO_PESSOA = ‘J’) da agência 105 (COD_AG = 105), com data de referência = ‘2022-01-01’ Campos: DATA_RFC, COD_AG, QTD_PESSOA\n\nSELECT\n\tc.DATA_RFC,\n    c.COD_AG,\n\tCOUNT(c.COD_PESSOA) AS QTD_CLIENTE\nFROM dbo.CLIENTE c\nINNER JOIN dbo.PESSOA p ON c.COD_PESSOA = p.COD_PESSOA\nWHERE p.TIPO_PESSOA = 'J' AND c.COD_AG = 105 AND c.DATA_RFC = '2022-01-01'\nGROUP BY c.DATA_RFC,c.COD_AG;\n\n-- 6) Selecione o gerente (MAT_GERENTE) que possui a maior média de clientes (COD_PESSOA) durante todo o período analisado.\n\nWITH count_qtd_cliente AS (\n    SELECT\n        c.MAT_GERENTE,\n        COUNT(c.COD_PESSOA) AS QTD_CLIENTE\n    FROM dbo.CLIENTE c\n    LEFT JOIN dbo.PESSOA p ON c.COD_PESSOA = p.COD_PESSOA\n    GROUP BY c.MAT_GERENTE\n),\nmedia_gerentes AS (\n    SELECT \n        MAT_GERENTE,\n        AVG(QTD_CLIENTE) AS MEDIA_QTD_CLIENTE\n    FROM count_qtd_cliente\n    GROUP BY MAT_GERENTE\n)\nSELECT TOP 1 MAT_GERENTE,MEDIA_QTD_CLIENTE\nFROM media_gerentes\nORDER BY MEDIA_QTD_CLIENTE DESC;\n\n-- 7) Mostre a quantidade de clientes (COD_PESSOA) que cada gerente (MAT_GERENTE) possui, em cada uma das datas de referência (DATA_RFC) selecionando apenas o sexo feminino (SEXO = ‘F’)\n\nSELECT\n\tc.MAT_GERENTE,\n\tc.DATA_RFC,\n\tCOUNT(c.COD_PESSOA) OVER (PARTITION BY c.MAT_GERENTE,c.DATA_RFC) AS QTD_CLIENTE\nFROM dbo.CLIENTE c\nLEFT JOIN dbo.PESSOA p ON c.COD_PESSOA = p.COD_PESSOA\nWHERE p.SEXO = 'F'\n\n\n\n-- 8) Selecione os gerentes (MAT_GERENTE) que possuem ao menos uma cliente com o NOME ‘MARIA’\n\nSELECT\n\tc.MAT_GERENTE,\n\tCOUNT(c.COD_PESSOA) AS QTD_CLIENTE,\n\tp.NOME\nFROM dbo.CLIENTE c\nINNER JOIN dbo.PESSOA p ON c.COD_PESSOA = p.COD_PESSOA\nWHERE p.NOME LIKE '%Maria%'\nGROUP BY c.MAT_GERENTE,p.NOME\n\n-- 9) Selecione todas as pessoas (COD_PESSOA) que não estão na tabela CLIENTE.\n\nSELECT\n\tp.COD_PESSOA,\n\tp.TIPO_PESSOA,\n\tp.NOME,\n\tp.CNPJ,\n\tp.SEXO,\n\tp.ESTADO_CIVIL\nFROM dbo.PESSOA p\nLEFT JOIN dbo.CLIENTE c ON c.COD_PESSOA = p.COD_PESSOA\nWHERE c.COD_PESSOA IS NULL\n\n--10) Selecione a agência (COD_AG) que possui a maior quantidade de mulheres (SEXO = ‘F’) na última data de referência disponível.\n\nWITH qtd_cod_ag AS( \n\tSELECT\n\t\tc.COD_AG,\n\t\tc.DATA_RFC,\n\t\tCOUNT(c.COD_PESSOA) AS QTD_CLIENTE,\n\t\tp.NOME\n\tFROM dbo.CLIENTE c\n\tINNER JOIN dbo.PESSOA p ON c.COD_PESSOA = p.COD_PESSOA\n\tWHERE p.SEXO = 'F'\n\tGROUP BY c.COD_AG,p.NOME,c.DATA_RFC\n),\nultima_data AS (\n\tSELECT TOP 1\n\t\t*\n\tFROM qtd_cod_ag\n\tORDER BY DATA_RFC DESC\n)\nSELECT \n\t* \nFROM ultima_data\n```\n\n## **Observação**\nExecute a src/respostas.sql uma questão por vez, e em sequencia","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fmairondc21%2Fteste_mairon","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fmairondc21%2Fteste_mairon","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fmairondc21%2Fteste_mairon/lists"}