├── 01 - Marketing └── queries_marketing.ipynb ├── 02 - Recursos Humanos (RH) └── queries_RH.ipynb ├── 03 - Financeiro └── queries_financeiro.ipynb ├── 04 - Logistica ├── queries_geograficas.ipynb └── queries_logistica.ipynb ├── 05 - Operação └── queries_operação.ipynb ├── 06 - Comercial └── queries_comercial_sq.ipynb ├── 07 - Data Insights └── queries_data_insights.ipynb ├── 08 - Jurídico └── queries_juridico.ipynb ├── 09 - Suporte └── queries_suporte.ipynb ├── 10 - Pricing └── queries_pricing.ipynb ├── 11 - Fraud Prevention └── queries_fraud_prevention.ipynb ├── 12 - ESG ├── 1 - Environmental (Meio Ambiente) │ └── queries_environmental.ipynb ├── 2 - Social │ └── queries_social.ipynb └── 3 - Governance (Governança) │ └── queries_governance.ipynb ├── Images └── thumbnail.jpg ├── Prompts ├── Prompt (Analise de Dados Exploratória).txt ├── Prompt (Business Intelligence - Listar as melhores estratégias em uma área).txt └── ToT (prompt de batalha de argumentos de especialistas).txt └── README.md /02 - Recursos Humanos (RH)/queries_RH.ipynb: -------------------------------------------------------------------------------- 1 | { 2 | "nbformat": 4, 3 | "nbformat_minor": 0, 4 | "metadata": { 5 | "colab": { 6 | "provenance": [] 7 | }, 8 | "kernelspec": { 9 | "name": "python3", 10 | "display_name": "Python 3" 11 | }, 12 | "language_info": { 13 | "name": "python" 14 | } 15 | }, 16 | "cells": [ 17 | { 18 | "cell_type": "markdown", 19 | "source": [ 20 | "# 📊 Repositório de Consultas SQL para Analistas de Dados: **Departamento de Recursos Humanos (RH)**\n", 21 | "- 🔍 Contribuições: Estamos abertos a contribuições da comunidade de analistas de dados! Se você tiver consultas SQL úteis que gostaria de compartilhar ou sugestões para melhorias, sinta-se à vontade para enviar um pull request. Juntos, podemos expandir e aprimorar este repositório para beneficiar toda a comunidade de análise de dados.\n", 22 | "- 🎯 Sinta-se à vontade para explorar, utilizar e contribuir para este repositório, e que ele possa ser uma ferramenta valiosa em sua jornada como analista de dados!" 23 | ], 24 | "metadata": { 25 | "id": "vjqSg4TxgLfQ" 26 | } 27 | }, 28 | { 29 | "cell_type": "markdown", 30 | "source": [ 31 | "# 📌 **Média de Tempo de Empresa por Funcionário**\n", 32 | "- A média de tempo de empresa por funcionário é uma métrica que calcula o tempo médio que os funcionários permanecem na empresa. Essa métrica é útil para entender a retenção de funcionários e a estabilidade da força de trabalho ao longo do tempo.\n", 33 | "- KPI: Average Tenure (Dias) = Média(DATEDIFF(current_date, hire_date))\n", 34 | "```sql\n", 35 | "SELECT\n", 36 | " AVG(DATEDIFF(current_date, hire_date)) AS average_tenure_days\n", 37 | "FROM\n", 38 | " employees\n", 39 | "WHERE\n", 40 | " status = 'active';\n", 41 | "```" 42 | ], 43 | "metadata": { 44 | "id": "jw04-02AlFTs" 45 | } 46 | }, 47 | { 48 | "cell_type": "markdown", 49 | "source": [ 50 | "# 📌 **Taxa de Rotatividade (Turnover Rate)**\n", 51 | "- A Taxa de Rotatividade (Turnover Rate) é uma métrica usada para medir a frequência com que os empregados deixam uma organização durante um período determinado, geralmente um ano. É calculada dividindo o número de funcionários que saíram pelo número médio de funcionários no período, e geralmente é expressa em porcentagem. Essa taxa ajuda as empresas a entender a estabilidade do seu quadro de pessoal e a eficácia das suas políticas de retenção.\n", 52 | "- KPI: Turnover Rate = (Número de Desligamentos / Média de Funcionários) * 100\n", 53 | "\n", 54 | "```sql\n", 55 | "SELECT\n", 56 | " (COUNT(DISTINCT employee_id) / AVG(total_employees)) * 100 AS turnover_rate\n", 57 | "FROM\n", 58 | " employee_departures, total_employees\n", 59 | "WHERE\n", 60 | " departure_date BETWEEN 'YYYY-MM-DD' AND 'YYYY-MM-DD';\n", 61 | "```" 62 | ], 63 | "metadata": { 64 | "id": "3bw9bLPzhpjX" 65 | } 66 | }, 67 | { 68 | "cell_type": "markdown", 69 | "source": [ 70 | "# 📌 **Custo de Contratação (Cost Per Hire)**\n", 71 | "- O Custo de Contratação (Cost Per Hire) é uma métrica usada para calcular o total de despesas envolvidas no processo de contratação de um novo funcionário. Isso inclui custos diretos e indiretos, como anúncios de vagas, taxas de agências de recrutamento, tempo gasto pela equipe de RH, testes, entrevistas, treinamento inicial, e até a integração do novo empregado. Essa métrica ajuda as organizações a avaliar a eficiência e os custos associados aos seus processos de recrutamento e seleção.\n", 72 | "- KPI: Cost Per Hire = (Custo Total de Contratação / Número de Contratações)\n", 73 | "\n", 74 | "```sql\n", 75 | "SELECT\n", 76 | " SUM(cost) / COUNT(DISTINCT hire_id) AS cost_per_hire\n", 77 | "FROM\n", 78 | " hiring_costs\n", 79 | "WHERE\n", 80 | " hire_date BETWEEN 'YYYY-MM-DD' AND 'YYYY-MM-DD';\n", 81 | "```" 82 | ], 83 | "metadata": { 84 | "id": "O3LZqAr2iAc5" 85 | } 86 | }, 87 | { 88 | "cell_type": "markdown", 89 | "source": [ 90 | "# 📌 **Índice de Satisfação dos Funcionários (Employee Satisfaction Index)**\n", 91 | "- O Índice de Satisfação dos Funcionários (Employee Satisfaction Index) é uma métrica utilizada para avaliar o grau de contentamento e bem-estar dos empregados em uma organização. Esse índice é geralmente obtido por meio de pesquisas periódicas que abordam diversos aspectos do ambiente de trabalho, como condições físicas, relacionamentos interpessoais, remuneração, oportunidades de desenvolvimento, e equilíbrio entre vida pessoal e profissional. O resultado é expresso em uma pontuação ou percentual que reflete o nível geral de satisfação dos funcionários, sendo um indicador crucial para a gestão de recursos humanos no sentido de identificar áreas para melhorias e implementar estratégias de retenção.\n", 92 | "- SQL: Dependente da estrutura de dados de pesquisa.\n", 93 | "- Supondo que exista uma tabela employee_surveys com campos como employee_id, survey_date, satisfaction_score (onde a pontuação de satisfação é quantificada), a query SQL poderia ser:\n", 94 | "\n", 95 | "```sql\n", 96 | "SELECT\n", 97 | " AVG(satisfaction_score) AS employee_satisfaction_index\n", 98 | "FROM\n", 99 | " employee_surveys\n", 100 | "WHERE\n", 101 | " survey_date BETWEEN 'YYYY-MM-DD' AND 'YYYY-MM-DD';\n", 102 | "```\n" 103 | ], 104 | "metadata": { 105 | "id": "wIsPj1FbiP0n" 106 | } 107 | }, 108 | { 109 | "cell_type": "markdown", 110 | "source": [ 111 | "# 📌 **Tempo Médio para Preencher Vagas (Time to Fill)**\n", 112 | "- O Tempo Médio para Preencher Vagas (Time to Fill) é uma métrica de RH que mede o número de dias que leva desde o momento em que uma vaga é anunciada até o dia em que um candidato aceita a oferta de emprego. Essa métrica ajuda a avaliar a eficiência dos processos de recrutamento e seleção de uma empresa, indicando quanto tempo a organização geralmente precisa para encontrar e contratar o candidato adequado para uma posição. É importante para planejar e garantir que as operações não sejam afetadas negativamente por vagas abertas por períodos prolongados.\n", 113 | "- KPI: Time to Fill = (Data de Preenchimento - Data de Abertura da Vaga)\n", 114 | "\n", 115 | "```sql\n", 116 | "SELECT\n", 117 | " AVG(DATEDIFF(fill_date, open_date)) AS time_to_fill\n", 118 | "FROM\n", 119 | " job_openings\n", 120 | "WHERE\n", 121 | " fill_date BETWEEN 'YYYY-MM-DD' AND 'YYYY-MM-DD';\n", 122 | "```" 123 | ], 124 | "metadata": { 125 | "id": "HF1pe8ckiaiX" 126 | } 127 | }, 128 | { 129 | "cell_type": "markdown", 130 | "source": [ 131 | "# 📌 **Índice de Absenteísmo (Absenteeism Rate)**\n", 132 | "- O Índice de Absenteísmo (Absenteeism Rate) é uma métrica usada para quantificar a frequência e a duração das ausências dos funcionários de seus postos de trabalho durante um período determinado. Ele é calculado dividindo o total de dias perdidos devido a faltas pelo número possível de dias de trabalho no mesmo período, normalmente expresso como uma porcentagem. Esse índice ajuda as organizações a identificar problemas relacionados ao bem-estar dos funcionários e a eficácia das políticas de saúde e de ambiente de trabalho.\n", 133 | "- KPI: Absenteeism Rate = (Dias Perdidos / Total de Dias Trabalháveis) * 100\n", 134 | "\n", 135 | "```sql\n", 136 | "SELECT\n", 137 | " (SUM(absent_days) / SUM(working_days)) * 100 AS absenteeism_rate\n", 138 | "FROM\n", 139 | " attendance_records\n", 140 | "WHERE\n", 141 | " record_date BETWEEN 'YYYY-MM-DD' AND 'YYYY-MM-DD';\n", 142 | "```" 143 | ], 144 | "metadata": { 145 | "id": "_acq98n6ijvA" 146 | } 147 | }, 148 | { 149 | "cell_type": "markdown", 150 | "source": [ 151 | "# 📌 **Índice de Gastos com Salários (Salary Expense Ratio)**\n", 152 | "- O Índice de Gastos com Salários (Salary Expense Ratio) é uma métrica financeira que mede a proporção dos gastos totais de uma empresa destinados a salários e benefícios dos funcionários. Ele é calculado dividindo o total de gastos com salários pelo total de receitas da empresa, e é geralmente expresso como uma porcentagem. Esse índice é importante para avaliar o impacto dos custos de mão de obra nas operações e na lucratividade da organização, ajudando a identificar se esses gastos estão em linha com os padrões do setor e com as metas financeiras da empresa.\n", 153 | "- KPI: Salary Expense Ratio = (Total de Gastos com Salários / Receita Total) * 100\n", 154 | "- A query SQL pressupõe que há tabelas payroll (folha de pagamento) e financials (dados financeiros) com um campo comum period (período), permitindo correlacionar gastos com receita.\n", 155 | "\n", 156 | "```sql\n", 157 | "SELECT\n", 158 | " (SUM(salaries) / SUM(revenue)) * 100 AS salary_expense_ratio\n", 159 | "FROM\n", 160 | " payroll, financials\n", 161 | "WHERE\n", 162 | " payroll.period = financials.period;\n", 163 | "```" 164 | ], 165 | "metadata": { 166 | "id": "EBJSqEuzisYg" 167 | } 168 | }, 169 | { 170 | "cell_type": "markdown", 171 | "source": [ 172 | "# 📌 **Identificar os funcionários que estão prontos para serem promovidos**\n", 173 | "Em uma grande organização, os gerentes de RH geralmente enfrentam o desafio de identificar os funcionários que estão prontos para serem promovidos.\n", 174 | "Não se trata apenas de analisar a pontuação de desempenho mais recente.\n", 175 | "Trata-se de considerar toda a jornada do funcionário dentro da empresa. Os fatores podem incluir:\n", 176 | "- Alto desempenho consistente ao longo de vários anos.\n", 177 | "- Permanência na empresa (por exemplo, funcionários que estão na empresa há mais de 3 anos).\n", 178 | "- Conclusão de programas específicos de treinamento ou certificação.\n", 179 | "Abaixo está uma consulta SQL hipotética que poderia fornecer os insights de que você precisa. Ela identifica os funcionários que:\n", 180 | "- Estão na empresa desde pelo menos 2020.\n", 181 | "- Concluíram um \"Programa de Liderança Avançada\".\n", 182 | "- Mantiveram uma pontuação média de desempenho acima de 4,5 (em uma escala de 1 a 5) por vários anos.\n", 183 | "\n", 184 | "O resultado? Uma lista selecionada de funcionários, classificada por seu desempenho consistente, pronta para possíveis promoções internas.\n", 185 | "\n", 186 | "```sql\n", 187 | "SELECT\n", 188 | "\te.employee_name,\n", 189 | "\te.department,\n", 190 | "\tAVG(r.performance_score) as avg_score,\n", 191 | "\te.join_date,\n", 192 | "\tt.training_completed\n", 193 | "FROM employees e\n", 194 | "\tJOIN annual_reviews r ON e.employee_id = r.employee_id\n", 195 | "\tJOIN training_programs t ON e.employee_id = t.employee_id\n", 196 | "WHERE e.join_date <= '2020-01-01'\n", 197 | "\tAND t.training_completed = 'Advanced Leadership Program'\n", 198 | "GROUP BY e.employee_name, e.department, e.join_date, t.training_completed\n", 199 | "HAVING AVG(r.performance_score) > 4.5\n", 200 | "ORDER BY avg_score DESC;\n", 201 | "```" 202 | ], 203 | "metadata": { 204 | "id": "SGP8CC51i6QJ" 205 | } 206 | }, 207 | { 208 | "cell_type": "markdown", 209 | "source": [ 210 | "\n", 211 | "# 📌 **Funcionários que Estão Próximos de Aposentadoria**\n", 212 | "- Identificar os funcionários que estão próximos da idade de aposentadoria é importante para planejamento sucessório e gestão de conhecimento. Esta métrica considera 65 anos como idade de aposentadoria e lista os funcionários que têm 60 anos ou mais.\n", 213 | "- KPI: Near Retirement Age = Funcionários com Idade ≥ 60\n", 214 | "```sql\n", 215 | "SELECT\n", 216 | " employee_id,\n", 217 | " name,\n", 218 | " birth_date,\n", 219 | " DATEDIFF(current_date, birth_date) / 365 AS age\n", 220 | "FROM employees\n", 221 | "WHERE\n", 222 | " DATEDIFF(current_date, birth_date) / 365 >= 60\n", 223 | "ORDER BY age DESC;\n", 224 | "```" 225 | ], 226 | "metadata": { 227 | "id": "twhWUYWolRVS" 228 | } 229 | }, 230 | { 231 | "cell_type": "markdown", 232 | "source": [ 233 | "# 📌 **Horas Extras Totais por Funcionário**\n", 234 | "- As horas extras totais por funcionário são uma métrica que mostra a quantidade de horas extras trabalhadas por cada funcionário. Esta métrica ajuda a monitorar a carga de trabalho e a identificar possíveis excessos de horas extras que podem impactar a saúde e o desempenho dos funcionários. A consulta também inclui as colunas de mês e ano para uma análise temporal mais detalhada.\n", 235 | "- KPI: Total Overtime Hours = Soma das horas extras por funcionário por mês e ano\n", 236 | "```sql\n", 237 | "SELECT\n", 238 | " employee_id,\n", 239 | " EXTRACT(YEAR FROM work_date) AS year,\n", 240 | " EXTRACT(MONTH FROM work_date) AS month,\n", 241 | " SUM(overtime_hours) AS total_overtime_hours\n", 242 | "FROM timesheets\n", 243 | "GROUP BY\n", 244 | " employee_id,\n", 245 | " year,\n", 246 | " month\n", 247 | "ORDER BY total_overtime_hours DESC;\n", 248 | "```" 249 | ], 250 | "metadata": { 251 | "id": "D708v361latK" 252 | } 253 | }, 254 | { 255 | "cell_type": "markdown", 256 | "source": [ 257 | "# 📌 **Identificar quantidade de aniversarios de funcionários por mês**\n", 258 | "- Objetivo desta query seria preparação antecipada de celebrações.\n", 259 | "\n", 260 | "```sql\n", 261 | "WITH cte_mes AS (\n", 262 | " SELECT\n", 263 | " employee_id,\n", 264 | " EXTRACT(MONTH FROM birth_date) AS mes_nascimento\n", 265 | " FROM employees\n", 266 | ")\n", 267 | "\n", 268 | "SELECT\n", 269 | " mes_nascimento,\n", 270 | " COUNT(CASE WHEN mes_nascimento = 1 THEN 1 END) AS Janeiro,\n", 271 | " COUNT(CASE WHEN mes_nascimento = 2 THEN 1 END) AS Fevereiro,\n", 272 | " COUNT(CASE WHEN mes_nascimento = 3 THEN 1 END) AS Marco,\n", 273 | " COUNT(CASE WHEN mes_nascimento = 4 THEN 1 END) AS Abril,\n", 274 | " COUNT(CASE WHEN mes_nascimento = 5 THEN 1 END) AS Maio,\n", 275 | " COUNT(CASE WHEN mes_nascimento = 6 THEN 1 END) AS Junho,\n", 276 | " COUNT(CASE WHEN mes_nascimento = 7 THEN 1 END) AS Julho,\n", 277 | " COUNT(CASE WHEN mes_nascimento = 8 THEN 1 END) AS Agosto,\n", 278 | " COUNT(CASE WHEN mes_nascimento = 9 THEN 1 END) AS Setembro,\n", 279 | " COUNT(CASE WHEN mes_nascimento = 10 THEN 1 END) AS Outubro,\n", 280 | " COUNT(CASE WHEN mes_nascimento = 11 THEN 1 END) AS Novembro,\n", 281 | " COUNT(CASE WHEN mes_nascimento = 12 THEN 1 END) AS Dezembro\n", 282 | "FROM cte_mes\n", 283 | "GROUP BY mes_nascimento\n", 284 | "ORDER BY mes_nascimento\n", 285 | "```" 286 | ], 287 | "metadata": { 288 | "id": "-_-7b3B_jC5w" 289 | } 290 | } 291 | ] 292 | } -------------------------------------------------------------------------------- /03 - Financeiro/queries_financeiro.ipynb: -------------------------------------------------------------------------------- 1 | { 2 | "nbformat": 4, 3 | "nbformat_minor": 0, 4 | "metadata": { 5 | "colab": { 6 | "provenance": [] 7 | }, 8 | "kernelspec": { 9 | "name": "python3", 10 | "display_name": "Python 3" 11 | }, 12 | "language_info": { 13 | "name": "python" 14 | } 15 | }, 16 | "cells": [ 17 | { 18 | "cell_type": "markdown", 19 | "source": [ 20 | "# 📊 Repositório de Consultas SQL para Analistas de Dados: **Departamento Financeiro**\n", 21 | "- 🔍 Contribuições: Estamos abertos a contribuições da comunidade de analistas de dados! Se você tiver consultas SQL úteis que gostaria de compartilhar ou sugestões para melhorias, sinta-se à vontade para enviar um pull request. Juntos, podemos expandir e aprimorar este repositório para beneficiar toda a comunidade de análise de dados.\n", 22 | "- 🎯 Sinta-se à vontade para explorar, utilizar e contribuir para este repositório, e que ele possa ser uma ferramenta valiosa em sua jornada como analista de dados!" 23 | ], 24 | "metadata": { 25 | "id": "vjqSg4TxgLfQ" 26 | } 27 | }, 28 | { 29 | "cell_type": "markdown", 30 | "source": [ 31 | "# 📌 **Monitoramento de Gastos Financeiros com Classificação (Normal, Suspeito e Perigo)**\n", 32 | "\n", 33 | "**Objetivo:**\n", 34 | "O objetivo da query é calcular a média móvel de 30 dias dos gastos e classificar os gastos diários como \"normal\", \"suspeito\" ou \"perigo\", permitindo que o departamento financeiro monitore de forma eficaz as variações de gastos e identifique rapidamente anomalias que possam requerer ação imediata.\n", 35 | "\n", 36 | "**Importância:**\n", 37 | "- **Para o Departamento Financeiro:** Permite uma visão proativa e detalhada dos gastos, ajudando a identificar padrões e anomalias que possam indicar problemas ou oportunidades de otimização.\n", 38 | "- **Para a Empresa:** A identificação precoce de gastos suspeitos ou perigosos pode ajudar a evitar fraudes, reduzir desperdícios e melhorar a saúde financeira da empresa.\n", 39 | "\n", 40 | "### Query SQL\n", 41 | "\n", 42 | "```sql\n", 43 | "WITH DailyExpenses AS (\n", 44 | " SELECT\n", 45 | " expense_date,\n", 46 | " amount\n", 47 | " FROM\n", 48 | " financial_expenses\n", 49 | "),\n", 50 | "MovingAverage AS (\n", 51 | " SELECT\n", 52 | " expense_date,\n", 53 | " amount,\n", 54 | " AVG(amount) OVER (\n", 55 | " ORDER BY expense_date\n", 56 | " ROWS BETWEEN 29 PRECEDING AND CURRENT ROW\n", 57 | " ) AS moving_avg_30d\n", 58 | " FROM\n", 59 | " DailyExpenses\n", 60 | "),\n", 61 | "ClassifiedExpenses AS (\n", 62 | " SELECT\n", 63 | " expense_date,\n", 64 | " amount,\n", 65 | " moving_avg_30d,\n", 66 | " CASE\n", 67 | " WHEN amount > moving_avg_30d * 1.3 THEN 'perigo'\n", 68 | " WHEN amount > moving_avg_30d THEN 'suspeito'\n", 69 | " ELSE 'normal'\n", 70 | " END AS classification\n", 71 | " FROM\n", 72 | " MovingAverage\n", 73 | ")\n", 74 | "SELECT\n", 75 | " expense_date,\n", 76 | " amount,\n", 77 | " moving_avg_30d,\n", 78 | " classification\n", 79 | "FROM\n", 80 | " ClassifiedExpenses\n", 81 | "ORDER BY\n", 82 | " expense_date;\n", 83 | "```\n", 84 | "\n", 85 | "### Explicação de Cada Etapa da Query\n", 86 | "\n", 87 | "1. **DailyExpenses:**\n", 88 | " - **Objetivo:** Selecionar as colunas `expense_date` e `amount` da tabela `financial_expenses`.\n", 89 | " - **Importância:** Esta etapa cria uma base com os dados de despesas diárias.\n", 90 | "\n", 91 | "2. **MovingAverage:**\n", 92 | " - **Objetivo:** Calcular a média móvel de 30 dias para cada data de despesa.\n", 93 | " - **Explicação do Código:**\n", 94 | " - `AVG(amount) OVER (ORDER BY expense_date ROWS BETWEEN 29 PRECEDING AND CURRENT ROW)`: Calcula a média dos últimos 30 dias (incluindo o dia atual) para cada linha.\n", 95 | " - **Importância:** A média móvel ajuda a suavizar as flutuações diárias e fornece um valor de referência para identificar anomalias.\n", 96 | "\n", 97 | "3. **ClassifiedExpenses:**\n", 98 | " - **Objetivo:** Classificar os gastos com base na média móvel calculada.\n", 99 | " - **Explicação do Código:**\n", 100 | " - `CASE WHEN amount > moving_avg_30d * 1.3 THEN 'perigo' WHEN amount > moving_avg_30d THEN 'suspeito' ELSE 'normal' END AS classification`: Classifica o gasto diário como 'perigo' (30% acima da média móvel), 'suspeito' (acima da média móvel) ou 'normal' (igual ou abaixo da média móvel).\n", 101 | " - **Importância:** A classificação facilita a identificação de despesas que requerem atenção especial.\n", 102 | "\n", 103 | "4. **Seleção Final:**\n", 104 | " - **Objetivo:** Selecionar e ordenar os resultados finais.\n", 105 | " - **Explicação do Código:**\n", 106 | " - `SELECT expense_date, amount, moving_avg_30d, classification FROM ClassifiedExpenses ORDER BY expense_date`: Retorna as despesas diárias, a média móvel e a classificação, ordenadas por data.\n", 107 | " - **Importância:** Organiza os dados de maneira clara para análise ou para enviar alertas automáticos.\n", 108 | "\n", 109 | "### Implementação do Bot\n", 110 | "\n", 111 | "- **Alerta via E-mail e Slack:** Um bot pode ser configurado para verificar a tabela resultante e enviar alertas quando encontrar classificações 'suspeito' ou 'perigo'. Isso garante que a equipe financeira seja imediatamente informada de qualquer irregularidade, permitindo uma resposta rápida e eficaz.\n", 112 | "\n" 113 | ], 114 | "metadata": { 115 | "id": "1BupTfvqoru0" 116 | } 117 | }, 118 | { 119 | "cell_type": "markdown", 120 | "source": [ 121 | "# 📌 **Análise de Desempenho Financeiro Mensal (Receitas vs Despesas)**\n", 122 | "\n", 123 | "**Objetivo:**\n", 124 | "Calcular a soma das receitas e despesas mensais e a diferença entre elas (lucro líquido) para analisar o desempenho financeiro da empresa mês a mês.\n", 125 | "\n", 126 | "**Importância:**\n", 127 | "- **Para o Departamento Financeiro:** Permite uma visão clara do desempenho financeiro mensal, facilitando a identificação de tendências, sazonalidades e potenciais problemas.\n", 128 | "- **Para a Empresa:** Ajuda a tomar decisões informadas sobre gastos, investimentos e estratégias de negócios com base no desempenho financeiro histórico.\n", 129 | "\n", 130 | "### Query SQL\n", 131 | "\n", 132 | "```sql\n", 133 | "SELECT\n", 134 | " DATE_TRUNC('month', transaction_date) AS month,\n", 135 | " SUM(CASE WHEN transaction_type = 'revenue' THEN amount ELSE 0 END) AS total_revenue,\n", 136 | " SUM(CASE WHEN transaction_type = 'expense' THEN amount ELSE 0 END) AS total_expense,\n", 137 | " SUM(CASE WHEN transaction_type = 'revenue' THEN amount ELSE -amount END) AS net_income\n", 138 | "FROM\n", 139 | " financial_transactions\n", 140 | "GROUP BY\n", 141 | " DATE_TRUNC('month', transaction_date)\n", 142 | "ORDER BY\n", 143 | " month;\n", 144 | "```\n", 145 | "\n", 146 | "### Explicação de Cada Etapa da Query\n", 147 | "\n", 148 | "1. **Seleção e Agrupamento por Mês:**\n", 149 | " - `DATE_TRUNC('month', transaction_date) AS month`: Usa a função `DATE_TRUNC` para truncar a data da transação ao início do mês, agrupando todas as transações por mês.\n", 150 | " - **Importância:** Agrupar as transações por mês permite uma análise agregada do desempenho financeiro mensal.\n", 151 | "\n", 152 | "2. **Cálculo das Receitas Totais:**\n", 153 | " - `SUM(CASE WHEN transaction_type = 'revenue' THEN amount ELSE 0 END) AS total_revenue`: Usa uma cláusula `CASE` para somar apenas os valores das transações classificadas como receitas (`revenue`).\n", 154 | " - **Importância:** Calcular as receitas totais do mês fornece uma visão clara de quanto dinheiro a empresa ganhou em cada mês.\n", 155 | "\n", 156 | "3. **Cálculo das Despesas Totais:**\n", 157 | " - `SUM(CASE WHEN transaction_type = 'expense' THEN amount ELSE 0 END) AS total_expense`: Usa uma cláusula `CASE` para somar apenas os valores das transações classificadas como despesas (`expense`).\n", 158 | " - **Importância:** Calcular as despesas totais do mês mostra quanto dinheiro a empresa gastou em cada mês.\n", 159 | "\n", 160 | "4. **Cálculo do Lucro Líquido:**\n", 161 | " - `SUM(CASE WHEN transaction_type = 'revenue' THEN amount ELSE -amount END) AS net_income`: Usa uma cláusula `CASE` para somar os valores das receitas e subtrair os valores das despesas, resultando no lucro líquido do mês.\n", 162 | " - **Importância:** O lucro líquido é um indicador crucial de desempenho financeiro, mostrando a diferença entre receitas e despesas e ajudando a avaliar a rentabilidade da empresa.\n", 163 | "\n", 164 | "5. **Agrupamento e Ordenação Final:**\n", 165 | " - `GROUP BY DATE_TRUNC('month', transaction_date)`: Agrupa os resultados por mês.\n", 166 | " - `ORDER BY month`: Ordena os resultados cronologicamente por mês.\n", 167 | " - **Importância:** Agrupar e ordenar os dados cronologicamente facilita a análise sequencial e a identificação de tendências ao longo do tempo.\n", 168 | "\n", 169 | "### Conclusão\n", 170 | "\n", 171 | "A query \"Análise de Desempenho Mensal\" é essencial para o departamento financeiro, pois fornece insights detalhados sobre receitas, despesas e lucro líquido mensal. Esses insights são fundamentais para a tomada de decisões estratégicas, permitindo a identificação de padrões e ajudando a empresa a se adaptar rapidamente a mudanças nas condições financeiras." 172 | ], 173 | "metadata": { 174 | "id": "TQHQ6FJoq1_i" 175 | } 176 | }, 177 | { 178 | "cell_type": "markdown", 179 | "source": [ 180 | "# 📌 **EBITDA (Earnings Before Interest, Taxes, Depreciation, and Amortization)**\n", 181 | "- EBITDA (Earnings Before Interest, Taxes, Depreciation, and Amortization) é um indicador financeiro que mede a lucratividade de uma empresa antes de deduções por juros, impostos, depreciação e amortização. Essencialmente, ele oferece uma visão clara da geração de caixa operacional da empresa, ignorando fatores que não estão diretamente ligados às operações diárias, como estrutura de capital e políticas fiscais. O EBITDA é amplamente utilizado para comparar a eficiência operacional entre empresas e indústrias, ignorando efeitos contábeis e fiscais.\n", 182 | "\n", 183 | "```sql\n", 184 | "SELECT\n", 185 | " DATE_TRUNC('month', data_pedido) AS mes,\n", 186 | " SUM(valor_total - custo_produtos - custo_operacional) AS ebitda\n", 187 | "FROM pedidos\n", 188 | "GROUP BY mes\n", 189 | "ORDER BY mes;\n", 190 | "```" 191 | ], 192 | "metadata": { 193 | "id": "3bw9bLPzhpjX" 194 | } 195 | }, 196 | { 197 | "cell_type": "markdown", 198 | "source": [ 199 | "# 📌 **Margem de Lucro Líquido**\n", 200 | "- A Margem de Lucro Líquido é uma métrica financeira que representa a porcentagem do lucro líquido em relação à receita total de uma empresa. Ela é calculada subtraindo todos os custos, despesas operacionais, juros e impostos da receita total. Essa margem mostra quanto cada real de receita se converte em lucro após todos os gastos necessários para a operação da empresa serem cobertos. É um indicador crucial para avaliar a saúde financeira, a eficiência operacional e a capacidade de uma empresa gerar lucro a partir de suas receitas.\n", 201 | "\n", 202 | "```sql\n", 203 | "SELECT\n", 204 | " DATE_TRUNC('month', data_pedido) AS mes,\n", 205 | " (SUM(valor_total - custo_produtos - custo_operacional - impostos) / SUM(valor_total)) AS margem_lucro_liquido\n", 206 | "FROM pedidos\n", 207 | "GROUP BY mes\n", 208 | "ORDER BY mes;\n", 209 | "```" 210 | ], 211 | "metadata": { 212 | "id": "O3LZqAr2iAc5" 213 | } 214 | }, 215 | { 216 | "cell_type": "markdown", 217 | "source": [ 218 | "# 📌 **Margem de Lucro Bruto**\n", 219 | "- A Margem de Lucro Bruto é uma métrica financeira que representa a porcentagem da receita total que resta após deduzir os custos dos bens vendidos (COGS - Cost of Goods Sold). Ela é calculada dividindo o lucro bruto pela receita total e é expressa em porcentagem. Essa margem é um indicador importante da eficiência operacional e rentabilidade de uma empresa, mostrando quanto dinheiro sobra das vendas após cobrir os custos diretos associados à produção dos bens ou serviços vendidos. Uma margem de lucro bruto alta sugere que a empresa é eficiente na gestão dos custos de produção e tem um bom controle sobre suas despesas operacionais.\n", 220 | "\n", 221 | "```sql\n", 222 | "SELECT\n", 223 | " DATE_TRUNC('month', data_pedido) AS mes,\n", 224 | " SUM(valor_total - custo_produtos) / SUM(valor_total) AS margem_lucro_bruto\n", 225 | "FROM pedidos\n", 226 | "GROUP BY mes\n", 227 | "ORDER BY mes;\n", 228 | "```" 229 | ], 230 | "metadata": { 231 | "id": "SGP8CC51i6QJ" 232 | } 233 | }, 234 | { 235 | "cell_type": "markdown", 236 | "source": [ 237 | "# 📌 **Gross Merchandise Volume (GMV)**\n", 238 | "- O Gross Merchandise Volume (GMV) é a métrica que representa o total bruto das vendas de produtos ou serviços em uma plataforma durante um período específico. Ele calcula o volume total de transações comerciais realizadas, sem deduzir despesas como devoluções ou descontos. O GMV é frequentemente usado para medir a saúde financeira e o tamanho da atividade econômica em plataformas de comércio eletrônico e marketplaces, indicando o valor total dos bens que passaram pela plataforma.\n", 239 | "\n", 240 | "```sql\n", 241 | "SELECT\n", 242 | " DATE_TRUNC('month', data_pedido) AS mes,\n", 243 | " SUM(valor_total) AS gmv\n", 244 | "FROM pedidos\n", 245 | "GROUP BY mes\n", 246 | "ORDER BY mes;\n", 247 | "```" 248 | ], 249 | "metadata": { 250 | "id": "wIsPj1FbiP0n" 251 | } 252 | }, 253 | { 254 | "cell_type": "markdown", 255 | "source": [ 256 | "# 📌 **Taxa de Comissão Média**\n", 257 | "- A Taxa de Comissão Média é uma métrica que calcula a média das taxas percentuais cobradas por uma plataforma ou serviço sobre as transações realizadas, como as vendas de restaurantes em um aplicativo de entrega. Ela é determinada dividindo a receita total obtida com as comissões pelo Gross Merchandise Volume (GMV), e é expressa em porcentagem. Essa taxa indica quão eficazmente a plataforma monetiza seus serviços ao cobrar dos usuários, como restaurantes, por exemplo, e é crucial para avaliar a rentabilidade e sustentabilidade financeira do modelo de negócios.\n", 258 | "\n", 259 | "```sql\n", 260 | "SELECT\n", 261 | " DATE_TRUNC('month', data_pedido) AS mes,\n", 262 | " AVG(taxa_comissao) AS taxa_comissao_media\n", 263 | "FROM pedidos\n", 264 | "GROUP BY mes\n", 265 | "ORDER BY mes;\n", 266 | "```" 267 | ], 268 | "metadata": { 269 | "id": "HF1pe8ckiaiX" 270 | } 271 | }, 272 | { 273 | "cell_type": "markdown", 274 | "source": [ 275 | "# 📌 **Churn Rate de Restaurantes**\n", 276 | "- O Churn Rate de Restaurantes é uma métrica que mede a taxa de rotatividade ou o percentual de restaurantes parceiros que deixam de trabalhar com uma plataforma dentro de um período específico. Este indicador é crucial para entender a satisfação, a competitividade e a atratividade da plataforma para seus parceiros comerciais. Um churn rate alto pode sinalizar problemas como insatisfação com as políticas da plataforma, condições de serviço, ou a presença de concorrentes mais atraentes no mercado. Acompanhar essa taxa ajuda a plataforma a identificar áreas de melhoria para reter e atrair novos parceiros.\n", 277 | "\n", 278 | "```sql\n", 279 | "SELECT\n", 280 | " DATE_TRUNC('month', data_ultimo_pedido) AS mes,\n", 281 | " COUNT(DISTINCT restaurante_id) AS restaurantes_ativos,\n", 282 | " COUNT(DISTINCT CASE WHEN data_ultimo_pedido < CURRENT_DATE - INTERVAL '30 days' THEN restaurante_id END) AS restaurantes_churn\n", 283 | "FROM pedidos\n", 284 | "GROUP BY mes\n", 285 | "ORDER BY mes;\n", 286 | "```" 287 | ], 288 | "metadata": { 289 | "id": "_acq98n6ijvA" 290 | } 291 | }, 292 | { 293 | "cell_type": "markdown", 294 | "source": [ 295 | "# 📌 **Lifetime Value (LTV) do Cliente**\n", 296 | "- O Lifetime Value (LTV) do Cliente é uma métrica financeira que estima o valor total de receita que uma empresa pode esperar de um único cliente ao longo de toda a sua relação com a empresa. O LTV ajuda a entender quanto um cliente vale em termos de receita e é crucial para tomar decisões sobre quanto investir em aquisição e retenção de clientes. Ele permite que as empresas avaliem a lucratividade a longo prazo de suas relações com os clientes e ajustem suas estratégias de marketing e vendas para otimizar esse valor.\n", 297 | "\n", 298 | "```sql\n", 299 | "SELECT\n", 300 | " cliente_id,\n", 301 | " AVG(valor_total) AS ltv\n", 302 | "FROM pedidos\n", 303 | "GROUP BY cliente_id;\n", 304 | "```\n", 305 | "\n", 306 | "\n", 307 | "\n", 308 | "\n", 309 | "\n" 310 | ], 311 | "metadata": { 312 | "id": "EBJSqEuzisYg" 313 | } 314 | }, 315 | { 316 | "cell_type": "markdown", 317 | "source": [ 318 | "# 📌 **Custo de Aquisição de Cliente (CAC)**\n", 319 | "- O Custo de Aquisição de Cliente (CAC) é uma métrica financeira que calcula o custo total incorrido para adquirir um novo cliente. Inclui todos os gastos associados a marketing e vendas, divididos pelo número de clientes adquiridos durante um período específico. O CAC é fundamental para avaliar a eficácia e a eficiência das estratégias de marketing e vendas, ajudando as empresas a entender quanto estão investindo para ganhar cada novo cliente. Uma relação equilibrada entre o CAC e o Lifetime Value (LTV) dos clientes é crucial para garantir a sustentabilidade financeira da empresa.\n", 320 | "\n", 321 | "```sql\n", 322 | "SELECT\n", 323 | " DATE_TRUNC('month', data_cadastro) AS mes,\n", 324 | " SUM(custo_campanhas + custo_vendas) / COUNT(DISTINCT cliente_id) AS cac_mensal\n", 325 | "FROM clientes\n", 326 | "GROUP BY mes\n", 327 | "ORDER BY mes;\n", 328 | "```\n", 329 | "\n", 330 | "\n", 331 | "\n", 332 | "\n", 333 | "\n", 334 | "\n" 335 | ], 336 | "metadata": { 337 | "id": "-_-7b3B_jC5w" 338 | } 339 | } 340 | ] 341 | } -------------------------------------------------------------------------------- /04 - Logistica/queries_geograficas.ipynb: -------------------------------------------------------------------------------- 1 | { 2 | "nbformat": 4, 3 | "nbformat_minor": 0, 4 | "metadata": { 5 | "colab": { 6 | "provenance": [] 7 | }, 8 | "kernelspec": { 9 | "name": "python3", 10 | "display_name": "Python 3" 11 | }, 12 | "language_info": { 13 | "name": "python" 14 | } 15 | }, 16 | "cells": [ 17 | { 18 | "cell_type": "markdown", 19 | "source": [ 20 | "# 📊 Repositório de Consultas SQL para Analistas de Dados: **Departamento Logistica - Queries Geograficas**\n", 21 | "- 🔍 Contribuições: Estamos abertos a contribuições da comunidade de analistas de dados! Se você tiver consultas SQL úteis que gostaria de compartilhar ou sugestões para melhorias, sinta-se à vontade para enviar um pull request. Juntos, podemos expandir e aprimorar este repositório para beneficiar toda a comunidade de análise de dados.\n", 22 | "- 🎯 Sinta-se à vontade para explorar, utilizar e contribuir para este repositório, e que ele possa ser uma ferramenta valiosa em sua jornada como analista de dados!" 23 | ], 24 | "metadata": { 25 | "id": "vjqSg4TxgLfQ" 26 | } 27 | }, 28 | { 29 | "cell_type": "markdown", 30 | "source": [ 31 | "# 📌 **Informações Geograficas de Rotas**\n", 32 | "- Calculo de distância em metros\n", 33 | "- Velocidade média\n", 34 | "- Bases de dados Bigquery Public Data\n", 35 | "\n", 36 | "```sql\n", 37 | "select\n", 38 | " trip_id,\n", 39 | " /* infos da estação de partida */\n", 40 | " start_station_latitude,\n", 41 | " start_station_longitude,\n", 42 | " start_station_geom,\n", 43 | " st_geogpoint(start_station_longitude, start_station_latitude) as ponto_geografico_start,\n", 44 | " /* infos da estação de chegada */\n", 45 | " end_station_latitude,\n", 46 | " end_station_longitude,\n", 47 | " end_station_geom,\n", 48 | " st_geogpoint(end_station_longitude, end_station_latitude) as ponto_geografico_end,\n", 49 | " /* distancia e velocidade média (m/s) */\n", 50 | " round(st_distance(start_station_geom, end_station_geom), 0) as distancia_metros,\n", 51 | " round(st_distance(start_station_geom, end_station_geom) / duration_sec, 0) as velocidade_media,\n", 52 | " /* st_x e st_y */\n", 53 | " st_x(start_station_geom) as longitude,\n", 54 | " st_y(start_station_geom) as latitude,\n", 55 | " /* st_makeline é usado para colocar linhas em uma visualização de Mapa */\n", 56 | " st_makeline(start_station_geom, end_station_geom) as rota\n", 57 | "from `bigquery-public-data.san_francisco_bikeshare.bikeshare_trips`\n", 58 | "where start_station_latitude is not null and start_station_longitude is not null\n", 59 | " and end_station_latitude is not null and end_station_longitude is not null\n", 60 | " and round(st_distance(start_station_geom, end_station_geom), 0) > 0\n", 61 | "order by rand() # pegando dados aleatorios\n", 62 | "limit 100;\n", 63 | "```\n", 64 | "\n", 65 | "\n", 66 | "\n", 67 | "\n", 68 | "\n" 69 | ], 70 | "metadata": { 71 | "id": "EBJSqEuzisYg" 72 | } 73 | }, 74 | { 75 | "cell_type": "markdown", 76 | "source": [ 77 | "# 📌 **Query com 10 localizações geograficas de crimes usando dataset publico austin_crime**\n", 78 | "- Cria pontos geográficos\n", 79 | "- Pega 10 crimes aleatorios\n", 80 | "- A partir de um ponto geografico do mcdonalds da cidade, calcula a distancia (em km) entre o ponto do crime/incidente até o ponto geografico do mcdonalds\n", 81 | "- Crie também as rotas de cada incidente á cordenada (linhas de rota)\n", 82 | "\n", 83 | "```sql\n", 84 | "%%sql\n", 85 | "SELECT\n", 86 | " unique_key,\n", 87 | " /* infos dos crimes */\n", 88 | " latitude,\n", 89 | " longitude,\n", 90 | " st_geogpoint(longitude, latitude) as ponto_geografico_crime,\n", 91 | " clearance_status,\n", 92 | " description,\n", 93 | " year,\n", 94 | " /* infos do mcdonalds 30.2723734,-97.6981411 */\n", 95 | " ST_GEOGPOINT(-97.6981411, 30.2723734) AS ponto_geografico_mcdonalds,\n", 96 | " /* distancia */\n", 97 | " round(ST_DISTANCE(ST_GEOGPOINT(longitude, latitude), ST_GEOGPOINT(-97.6981411, 30.2723734))/1000, 2) as distancia,\n", 98 | " /* criando linhas de rota */\n", 99 | " ST_MAKELINE(ST_GEOGPOINT(longitude, latitude), ST_GEOGPOINT(-97.6981411, 30.2723734)) AS rota\n", 100 | "from `bigquery-public-data.austin_crime.crime`\n", 101 | "where latitude is not null and longitude is not null\n", 102 | "order by rand() # pegando dados aleatorios\n", 103 | "limit 10\n", 104 | "```" 105 | ], 106 | "metadata": { 107 | "id": "AHBUx4-dRTHe" 108 | } 109 | }, 110 | { 111 | "cell_type": "markdown", 112 | "source": [ 113 | "# **Query calcula a mínima e a máxima distância do resultado da query acima**\n", 114 | "\n", 115 | "```sql\n", 116 | "WITH dist as (\n", 117 | " select\n", 118 | " unique_key,\n", 119 | " /* infos dos incidentes */\n", 120 | " latitude,\n", 121 | " longitude,\n", 122 | " ST_GEOGPOINT(longitude, latitude) AS ponto_geografico_incidente,\n", 123 | " /* infos do mcdonalds 30.2723734,-97.6981411 */\n", 124 | " ST_GEOGPOINT(-97.6981411, 30.2723734) AS ponto_geografico_mcdonalds,\n", 125 | " /* distancia */\n", 126 | " round(ST_DISTANCE(ST_GEOGPOINT(longitude, latitude), ST_GEOGPOINT(-97.6981411, 30.2723734))/1000, 2) as distancia,\n", 127 | " /* criando linhas de rota */\n", 128 | " ST_MAKELINE(ST_GEOGPOINT(longitude, latitude), ST_GEOGPOINT(-97.6981411, 30.2723734)) AS rota\n", 129 | " from bigquery-public-data.austin_crime.crime\n", 130 | " where latitude is not null\n", 131 | " and longitude is not null\n", 132 | " order by rand()\n", 133 | " limit 10)\n", 134 | "\n", 135 | "select\n", 136 | " min(distancia) as minimo,\n", 137 | " max(distancia) as maximo\n", 138 | "from dist;\n", 139 | "```" 140 | ], 141 | "metadata": { 142 | "id": "oA9Sj6eLRlT9" 143 | } 144 | } 145 | ] 146 | } -------------------------------------------------------------------------------- /04 - Logistica/queries_logistica.ipynb: -------------------------------------------------------------------------------- 1 | { 2 | "nbformat": 4, 3 | "nbformat_minor": 0, 4 | "metadata": { 5 | "colab": { 6 | "provenance": [] 7 | }, 8 | "kernelspec": { 9 | "name": "python3", 10 | "display_name": "Python 3" 11 | }, 12 | "language_info": { 13 | "name": "python" 14 | } 15 | }, 16 | "cells": [ 17 | { 18 | "cell_type": "markdown", 19 | "source": [ 20 | "# 📊 Repositório de Consultas SQL para Analistas de Dados: **Departamento Logistica**\n", 21 | "- 🔍 Contribuições: Estamos abertos a contribuições da comunidade de analistas de dados! Se você tiver consultas SQL úteis que gostaria de compartilhar ou sugestões para melhorias, sinta-se à vontade para enviar um pull request. Juntos, podemos expandir e aprimorar este repositório para beneficiar toda a comunidade de análise de dados.\n", 22 | "- 🎯 Sinta-se à vontade para explorar, utilizar e contribuir para este repositório, e que ele possa ser uma ferramenta valiosa em sua jornada como analista de dados!" 23 | ], 24 | "metadata": { 25 | "id": "vjqSg4TxgLfQ" 26 | } 27 | }, 28 | { 29 | "cell_type": "markdown", 30 | "source": [ 31 | "# 📌 **Taxa de Entrega no Prazo - OTD (On Time Delivery)**\n", 32 | "- A Taxa de Entrega no Prazo é uma métrica de desempenho logístico que mede a porcentagem de pedidos que são entregues aos clientes dentro do prazo estimado inicialmente. Esta taxa é crucial para avaliar a eficiência e a confiabilidade dos processos de entrega de uma empresa. Uma alta taxa de entrega no prazo indica um serviço de entrega eficaz, que cumpre com os compromissos de tempo acordados com os clientes, contribuindo para a satisfação do cliente e a reputação positiva da empresa.\n", 33 | "\n", 34 | "```sql\n", 35 | "SELECT\n", 36 | " modal,\n", 37 | " COUNT(DISTINCT order_id) AS TotalPedidos,\n", 38 | " SUM(CASE WHEN entrega_no_prazo = 1 THEN 1 ELSE 0 END) AS PedidosEntreguesNoPrazo,\n", 39 | " SUM(CASE WHEN entrega_no_prazo = 0 THEN 1 ELSE 0 END) AS PedidosAtrasados,\n", 40 | " (SUM(CASE WHEN entrega_no_prazo = 1 THEN 1 ELSE 0 END) * 100.0 / COUNT(DISTINCT order_id)) AS TaxaEntregaNoPrazo,\n", 41 | " (SUM(CASE WHEN entrega_no_prazo = 0 THEN 1 ELSE 0 END) * 100.0 / COUNT(DISTINCT order_id)) AS TaxaPedidosAtrasados,\n", 42 | " meta_estabelecida\n", 43 | "FROM\n", 44 | " Pedidos\n", 45 | "GROUP BY\n", 46 | " modal, meta_estabelecida;\n", 47 | "```" 48 | ], 49 | "metadata": { 50 | "id": "3bw9bLPzhpjX" 51 | } 52 | }, 53 | { 54 | "cell_type": "markdown", 55 | "source": [ 56 | "# 📌 **Eficiência de Logística**\n", 57 | "- A Eficiência de Logística é uma métrica que avalia o desempenho dos processos logísticos de uma empresa, focando especialmente no tempo médio necessário para preparar e entregar pedidos aos clientes. Essa métrica é fundamental para entender quão ágil e eficaz é a cadeia de suprimentos da empresa, desde o recebimento de um pedido até sua entrega final. Uma maior eficiência logística significa que a empresa é capaz de processar e entregar pedidos de maneira rápida e eficiente, aumentando a satisfação do cliente e otimizando os custos operacionais.\n", 58 | "\n", 59 | "```sql\n", 60 | "SELECT AVG(tempo_preparo + tempo_entrega) AS TempoMedioLogistica\n", 61 | "FROM Pedidos;\n", 62 | "```" 63 | ], 64 | "metadata": { 65 | "id": "O3LZqAr2iAc5" 66 | } 67 | }, 68 | { 69 | "cell_type": "markdown", 70 | "source": [ 71 | "# 📌 **Taxa de Pedidos Atrasados**\n", 72 | "- A Taxa de Pedidos Atrasados é uma métrica que indica a porcentagem de pedidos que não foram entregues dentro do prazo estimado originalmente. Esta taxa é essencial para avaliar a eficiência operacional de uma empresa no que diz respeito à gestão de tempo e logística de entrega. Um alto índice de pedidos atrasados pode sinalizar problemas na cadeia de suprimentos, na gestão de estoque, ou na execução de entregas, impactando negativamente a satisfação do cliente e a confiança na marca.\n", 73 | "\n", 74 | "```sql\n", 75 | "SELECT\n", 76 | " (COUNT(DISTINCT order_id) * 100.0 / (SELECT COUNT(DISTINCT order_id) FROM Pedidos)) AS TaxaPedidosAtrasados\n", 77 | "FROM\n", 78 | " Pedidos\n", 79 | "WHERE\n", 80 | " entrega_no_prazo = 0;\n", 81 | "```" 82 | ], 83 | "metadata": { 84 | "id": "SGP8CC51i6QJ" 85 | } 86 | }, 87 | { 88 | "cell_type": "markdown", 89 | "source": [ 90 | "# 📌 **Ranking de Exceções**\n", 91 | "\n", 92 | "O indicador \"Ranking de Exceções\" é uma métrica que classifica os principais tipos de exceções que causam desvios nas operações logísticas. Essas exceções podem incluir atrasos do fornecedor, avarias (dano ou defeito que ocorre em mercadorias durante o transporte, armazenamento ou manuseio, comprometendo sua integridade ou qualidade), problemas de documentação, entre outros. A query SQL utilizada para calcular esse indicador soma a quantidade de ocorrências de cada tipo de exceção e as ordena em ordem decrescente, fornecendo uma visão clara e hierarquizada das principais causas de desvios operacionais.\n", 93 | "\n", 94 | "#### Query SQL para o Ranking de Exceções\n", 95 | "```sql\n", 96 | "SELECT\n", 97 | " date_trunc('month', data_excecao) AS mes_ano,\n", 98 | " tipo_excecao,\n", 99 | " SUM(quantidade) AS TotalOcorrencias\n", 100 | "FROM\n", 101 | " ExcecoesLogisticas\n", 102 | "GROUP BY\n", 103 | " mes_ano,\n", 104 | " tipo_excecao\n", 105 | "ORDER BY\n", 106 | " mes_ano,\n", 107 | " TotalOcorrencias DESC;\n", 108 | "```\n", 109 | "\n", 110 | "### Importância do Indicador para o Departamento Logístico e para a Empresa\n", 111 | "\n", 112 | "#### 1. **Identificação de Problemas Recorrentes**\n", 113 | "- 🕵️‍♂️ **Diagnóstico**: O \"Ranking de Exceções\" permite identificar os tipos de problemas que ocorrem com mais frequência nas operações logísticas.\n", 114 | "- 🔍 **Foco nas Prioridades**: Ao saber quais exceções são mais comuns, o departamento logístico pode priorizar esforços e recursos para resolver esses problemas de maneira eficiente.\n", 115 | "\n", 116 | "#### 2. **Melhoria Contínua**\n", 117 | "- 📈 **Eficiência Operacional**: Identificar e mitigar as principais causas de exceções contribui para a melhoria contínua dos processos logísticos, aumentando a eficiência e reduzindo desperdícios.\n", 118 | "- 🔄 **Feedback Loop**: O indicador serve como um feedback loop para implementar e avaliar a eficácia de medidas corretivas.\n", 119 | "\n", 120 | "#### 3. **Redução de Custos**\n", 121 | "- 💰 **Custos Operacionais**: Exceções como atrasos e avarias geralmente resultam em custos adicionais. Reduzindo a frequência dessas exceções, a empresa pode diminuir os custos operacionais.\n", 122 | "- 🚚 **Gerenciamento de Inventário**: Problemas como atrasos do fornecedor podem afetar a gestão de inventário. Identificar e resolver essas exceções ajuda a manter níveis de estoque adequados, evitando excesso ou falta de produtos.\n", 123 | "\n", 124 | "#### 4. **Satisfação do Cliente**\n", 125 | "- 😀 **Experiência do Cliente**: Reduzir a frequência de exceções melhora a experiência do cliente, pois produtos são entregues no prazo e em boas condições.\n", 126 | "- 🏆 **Confiança na Marca**: Uma logística eficiente e confiável aumenta a confiança do cliente na marca, contribuindo para a fidelização e a reputação da empresa no mercado.\n", 127 | "\n", 128 | "#### 5. **Tomada de Decisão Informada**\n", 129 | "- 📊 **Dados e Insights**: O \"Ranking de Exceções\" fornece dados valiosos que podem ser utilizados em análises mais aprofundadas, ajudando os gestores a tomar decisões informadas e estratégicas.\n", 130 | "- 📉 **Acompanhamento de KPI**: Monitorar esse indicador ao longo do tempo permite acompanhar o desempenho dos KPIs logísticos e ajustar as estratégias conforme necessário.\n", 131 | "\n", 132 | "### Conclusão\n", 133 | "\n", 134 | "O indicador \"Ranking de Exceções\" é uma ferramenta crucial para o departamento logístico, ajudando a identificar, priorizar e mitigar os principais problemas que afetam a eficiência operacional. Para a empresa, isso se traduz em redução de custos, melhoria na satisfação do cliente, e um fortalecimento da marca no mercado. Adicionar essa métrica ao seu repositório de consultas SQL proporciona uma base sólida para análises contínuas e para a tomada de decisões estratégicas baseadas em dados." 135 | ], 136 | "metadata": { 137 | "id": "dq9WbadCwOqY" 138 | } 139 | }, 140 | { 141 | "cell_type": "markdown", 142 | "source": [ 143 | "# 📌 **Utilização de Recursos**\n", 144 | "- A Utilização de Recursos é uma métrica que mede o percentual de uso efetivo dos recursos disponíveis, como motos, bicicletas, veículos de entrega, etc., em relação à sua capacidade total disponível. Esta métrica é crucial para avaliar a eficiência operacional e otimização da gestão de ativos de uma empresa. Uma alta taxa de utilização indica que os recursos estão sendo empregados de maneira eficaz, maximizando o retorno sobre os investimentos e minimizando o tempo de inatividade, o que contribui para a redução de custos e melhoria no serviço de entrega.\n", 145 | "\n", 146 | "```sql\n", 147 | "SELECT recurso_entrega,\n", 148 | " COUNT(DISTINCT order_id) AS TotalPedidos,\n", 149 | " (COUNT(DISTINCT order_id) / (SELECT COUNT(DISTINCT order_id) FROM Pedidos)) * 100 AS UtilizacaoRecursos\n", 150 | "FROM Pedidos\n", 151 | "GROUP BY recurso_entrega;\n", 152 | "```" 153 | ], 154 | "metadata": { 155 | "id": "wIsPj1FbiP0n" 156 | } 157 | }, 158 | { 159 | "cell_type": "markdown", 160 | "source": [ 161 | "# 📌 **Taxa de Devoluções**\n", 162 | "- A Taxa de Devoluções é uma métrica que indica a porcentagem de pedidos que foram devolvidos pelos clientes após a compra. Essa taxa é importante para avaliar a satisfação do cliente e a qualidade dos produtos ou serviços oferecidos. Uma alta taxa de devoluções pode sinalizar problemas como produtos defeituosos, expectativas do cliente não atendidas ou falhas no processo de entrega, impactando negativamente a reputação e os custos operacionais da empresa.\n", 163 | "\n", 164 | "```sql\n", 165 | "SELECT (COUNT(DISTINCT order_id) / (SELECT COUNT(DISTINCT order_id) FROM Pedidos)) * 100 AS TaxaDevolucoes\n", 166 | "FROM Pedidos\n", 167 | "WHERE status_pedido = 'Devolvido';\n", 168 | "```" 169 | ], 170 | "metadata": { 171 | "id": "HF1pe8ckiaiX" 172 | } 173 | }, 174 | { 175 | "cell_type": "markdown", 176 | "source": [ 177 | "# 📌 **Custo de Logística por Pedido**\n", 178 | "- O Custo de Logística por Pedido é uma métrica que calcula o custo médio associado à logística de entrega de cada pedido. Inclui despesas como transporte, armazenamento, manuseio de materiais, e salários dos funcionários envolvidos no processo de entrega. Essa métrica ajuda as empresas a entender o impacto financeiro da logística sobre as operações e a identificar áreas onde podem ser feitas melhorias para reduzir custos e aumentar a eficiência operacional, mantendo ou melhorando a qualidade do serviço de entrega.\n", 179 | "\n", 180 | "```sql\n", 181 | "SELECT AVG(custo_logistica) AS CustoLogisticaPorPedido\n", 182 | "FROM Pedidos;\n", 183 | "```" 184 | ], 185 | "metadata": { 186 | "id": "_acq98n6ijvA" 187 | } 188 | } 189 | ] 190 | } -------------------------------------------------------------------------------- /05 - Operação/queries_operação.ipynb: -------------------------------------------------------------------------------- 1 | { 2 | "nbformat": 4, 3 | "nbformat_minor": 0, 4 | "metadata": { 5 | "colab": { 6 | "provenance": [] 7 | }, 8 | "kernelspec": { 9 | "name": "python3", 10 | "display_name": "Python 3" 11 | }, 12 | "language_info": { 13 | "name": "python" 14 | } 15 | }, 16 | "cells": [ 17 | { 18 | "cell_type": "markdown", 19 | "source": [ 20 | "# 📊 Repositório de Consultas SQL para Analistas de Dados: **Departamento Operação**\n", 21 | "O departamento de Operações em uma empresa desempenha um papel fundamental na execução e no gerenciamento das atividades diárias que são essenciais para a entrega eficiente de produtos ou serviços. Aqui estão algumas de suas funções principais:\n", 22 | "\n", 23 | "- **Gerenciamento da Produção**: Supervisionar a fabricação de produtos, garantindo eficiência, qualidade e cumprimento dos prazos.\n", 24 | "- **Logística**: Gerenciar a logística interna e externa, incluindo transporte, distribuição e armazenagem, para otimizar o fluxo de produtos.\n", 25 | "- **Controle de Qualidade**: Assegurar que todos os produtos ou serviços atendam aos padrões de qualidade estabelecidos antes de serem entregues aos clientes.\n", 26 | "- **Gestão de Cadeia de Suprimentos**: Administrar relações com fornecedores e gerenciar a aquisição de matérias-primas e insumos necessários para a operação.\n", 27 | "- **Otimização de Processos**: Melhorar continuamente os processos operacionais para aumentar a eficiência e reduzir custos.\n", 28 | "- **Suporte Técnico**: Oferecer assistência técnica necessária para a manutenção de máquinas e equipamentos.\n", 29 | "- **Planejamento de Recursos**: Assegurar que todos os recursos necessários, como mão de obra e materiais, estejam disponíveis para a produção ou entrega de serviços.\n", 30 | "\n", 31 | "🔄 O departamento de Operações é, portanto, essencial para manter a roda da empresa girando de forma suave e eficaz, lidando com os aspectos práticos da execução dos negócios.\n", 32 | "\n", 33 | "- 🔍 Contribuições: Estamos abertos a contribuições da comunidade de analistas de dados! Se você tiver consultas SQL úteis que gostaria de compartilhar ou sugestões para melhorias, sinta-se à vontade para enviar um pull request. Juntos, podemos expandir e aprimorar este repositório para beneficiar toda a comunidade de análise de dados.\n", 34 | "- 🎯 Sinta-se à vontade para explorar, utilizar e contribuir para este repositório, e que ele possa ser uma ferramenta valiosa em sua jornada como analista de dados!" 35 | ], 36 | "metadata": { 37 | "id": "vjqSg4TxgLfQ" 38 | } 39 | }, 40 | { 41 | "cell_type": "markdown", 42 | "source": [ 43 | "# 📌 **Taxa de Entrega no Prazo**\n", 44 | "- A Taxa de Entrega no Prazo é uma métrica que mede a porcentagem de pedidos que são entregues aos clientes dentro do prazo estimado inicialmente pela empresa. Essa taxa é um indicador chave da eficiência e confiabilidade dos processos de entrega de uma empresa, refletindo sua capacidade de cumprir compromissos de tempo com os clientes. Uma alta taxa de entrega no prazo geralmente contribui para a satisfação do cliente e fortalece a reputação da empresa como confiável e eficiente no atendimento de suas promessas de entrega.\n", 45 | "\n", 46 | "```sql\n", 47 | "SELECT COUNT(*) AS TotalPedidos,\n", 48 | " SUM(CASE WHEN entrega_no_prazo = 1 THEN 1 ELSE 0 END) AS PedidosEntreguesNoPrazo,\n", 49 | " (PedidosEntreguesNoPrazo / TotalPedidos) * 100 AS TaxaEntregaNoPrazo\n", 50 | "FROM Pedidos;\n", 51 | "```" 52 | ], 53 | "metadata": { 54 | "id": "wIsPj1FbiP0n" 55 | } 56 | }, 57 | { 58 | "cell_type": "markdown", 59 | "source": [ 60 | "# 📌 **Eficiência de Logística**\n", 61 | "- A Eficiência de Logística, no contexto do tempo médio de preparo e entrega dos pedidos, refere-se à rapidez e eficácia com que uma empresa consegue processar, preparar e entregar pedidos aos clientes. Essa métrica é crucial para avaliar a capacidade da cadeia logística de uma empresa em atender às expectativas dos clientes de maneira rápida e confiável. Uma alta eficiência logística indica que a empresa minimiza atrasos, maximiza a produtividade e otimiza recursos, contribuindo significativamente para a satisfação do cliente e a redução de custos operacionais.\n", 62 | "\n", 63 | "```sql\n", 64 | "SELECT AVG(tempo_preparo + tempo_entrega) AS TempoMedioLogistica\n", 65 | "FROM Pedidos;\n", 66 | "```" 67 | ], 68 | "metadata": { 69 | "id": "SGP8CC51i6QJ" 70 | } 71 | }, 72 | { 73 | "cell_type": "markdown", 74 | "source": [ 75 | "# 📌 **Nível de Estoque Médio**\n", 76 | "- O Nível de Estoque Médio é uma métrica que representa a média do volume de estoque disponível em uma empresa durante um determinado período de tempo. Esta métrica é calculada tomando a soma dos estoques no início e no fim do período (ou em intervalos regulares dentro do período) e dividindo pelo número de medições. Ela é fundamental para entender como a empresa gerencia seus recursos, ajudando a avaliar se o estoque está sendo mantido em níveis adequados para atender à demanda sem resultar em excesso ou falta de produtos. Monitorar o nível médio de estoque ajuda a otimizar as compras e a produção, minimizando custos e maximizando a eficiência operacional.\n", 77 | "\n", 78 | "```sql\n", 79 | "SELECT\n", 80 | " DATE_FORMAT(data, '%Y-%m') AS month,\n", 81 | " AVG(estoque_disponivel) AS avg_monthly_inventory_level\n", 82 | "FROM inventory_table\n", 83 | "GROUP BY month\n", 84 | "ORDER BY month;\n", 85 | "```" 86 | ], 87 | "metadata": { 88 | "id": "3aAAMcnZdRvI" 89 | } 90 | }, 91 | { 92 | "cell_type": "markdown", 93 | "source": [ 94 | "# 📌 **Taxa de Pedidos Cancelados**\n", 95 | "- A Taxa de Pedidos Cancelados é uma métrica que mede a porcentagem de pedidos que são cancelados pelos clientes ou pela empresa antes de serem entregues. Essa taxa ajuda a entender a frequência com que os pedidos não são concluídos após serem inicialmente processados. Um alto índice de cancelamentos pode indicar problemas na gestão de estoque, na operação logística, na satisfação do cliente ou na qualidade dos produtos. Monitorar essa taxa é crucial para identificar e resolver as causas subjacentes dos cancelamentos, visando melhorar a eficiência operacional e a satisfação do cliente.\n", 96 | "\n", 97 | "```sql\n", 98 | "SELECT (COUNT(*) / (SELECT COUNT(*) FROM Pedidos)) * 100 AS TaxaPedidosCancelados\n", 99 | "FROM Pedidos\n", 100 | "WHERE status_pedido = 'Cancelado';\n", 101 | "```" 102 | ], 103 | "metadata": { 104 | "id": "HF1pe8ckiaiX" 105 | } 106 | }, 107 | { 108 | "cell_type": "markdown", 109 | "source": [ 110 | "# 📌 **Taxa de utilização de equipamentos**\n", 111 | "- A Taxa de Utilização de Equipamentos é uma métrica que mede a proporção do tempo em que os equipamentos são efetivamente usados para produção ou operações em relação ao tempo total disponível. Essa taxa é crucial para avaliar a eficiência com que uma empresa gerencia e opera seus ativos. Uma alta taxa de utilização indica que os equipamentos estão sendo aproveitados ao máximo, minimizando a ociosidade e aumentando a produtividade. Por outro lado, uma taxa baixa pode indicar ineficiências, como manutenção inadequada, falhas operacionais ou planejamento deficiente, que podem levar a um aumento dos custos e redução da eficiência operacional.\n", 112 | "\n", 113 | "```sql\n", 114 | "SELECT (SUM(tempo_utilizado) / SUM(tempo_disponivel)) AS equipment_utilization_rate\n", 115 | "FROM equipment_table;\n", 116 | "```" 117 | ], 118 | "metadata": { 119 | "id": "z15IBIpRdAJH" 120 | } 121 | }, 122 | { 123 | "cell_type": "markdown", 124 | "source": [ 125 | "# 📌 **Calculo de probabilidade de falhas de equipamentos usando a distribuição de Poisson**\n", 126 | "\n", 127 | "### O que é a Distribuição de Poisson?\n", 128 | "\n", 129 | "A distribuição de Poisson é uma distribuição de probabilidade que descreve a probabilidade de um determinado número de eventos ocorrer em um intervalo fixo de tempo ou espaço, desde que esses eventos ocorram com uma taxa média constante e independentemente do tempo desde o último evento.\n", 130 | "\n", 131 | "Quando aplicado ao contexto de falhas de um equipamento, a distribuição de Poisson pode ser usada para modelar a probabilidade de um certo número de falhas ocorrer em um período de tempo específico (por exemplo, um mês ou um ano). Nesse caso:\n", 132 | "- 𝜆 representa a média de falhas por período de tempo, calculada com base em dados históricos.\n", 133 | "- 𝑘 é o número de falhas que queremos calcular a probabilidade de ocorrer.\n", 134 | "\n", 135 | "### Importância e Utilidade em um Departamento de Operações\n", 136 | "\n", 137 | "#### 1. **Previsão de Manutenção**\n", 138 | "A distribuição de Poisson permite que o departamento de operações preveja a probabilidade de falhas em equipamentos, ajudando a planejar a manutenção preventiva. Manutenções programadas com base nessas previsões podem reduzir o tempo de inatividade e evitar falhas inesperadas.\n", 139 | "\n", 140 | "#### 2. **Otimização de Recursos**\n", 141 | "Compreender a probabilidade de falhas ajuda a alocar recursos de maneira mais eficiente. Por exemplo, se a probabilidade de falhas para um determinado equipamento é alta, a empresa pode decidir ter peças de reposição prontamente disponíveis ou aumentar a frequência de inspeções.\n", 142 | "\n", 143 | "#### 3. **Gestão de Riscos**\n", 144 | "A análise de falhas através da distribuição de Poisson permite que a empresa identifique riscos potenciais e tome medidas proativas para mitigá-los. Isso pode incluir a implementação de redundâncias ou a substituição de equipamentos antigos.\n", 145 | "\n", 146 | "#### 4. **Análise de Desempenho**\n", 147 | "Comparar a distribuição de falhas prevista com os dados reais de falhas pode ajudar a avaliar o desempenho dos equipamentos e a eficácia das estratégias de manutenção. Se as falhas reais forem significativamente maiores do que o previsto, pode ser um indicativo de que o equipamento está se degradando mais rápido do que o esperado.\n", 148 | "\n", 149 | "#### 5. **Planejamento Financeiro**\n", 150 | "Prever falhas ajuda no planejamento financeiro, pois a empresa pode estimar custos relacionados à manutenção e substituição de equipamentos. Isso inclui o custo das peças, mão de obra e tempo de inatividade.\n", 151 | "\n", 152 | "### Exemplo Prático\n", 153 | "\n", 154 | "Suponha que, com base em dados históricos, um equipamento apresenta em média 2 falhas por mês. Usando a distribuição de Poisson, o departamento de operações pode calcular a probabilidade de ocorrerem 0, 1, 2, 3 ou mais falhas em um mês e, assim, planejar adequadamente as ações de manutenção.\n", 155 | "\n", 156 | "Em resumo, a distribuição de Poisson é uma ferramenta valiosa para a gestão de falhas em equipamentos, permitindo que o departamento de operações tome decisões informadas e proativas para garantir a eficiência e a continuidade das operações.\n", 157 | "\n", 158 | "## **Query SQL**\n", 159 | "```sql\n", 160 | "-- Passo 1: Calcular a média de falhas do último ano\n", 161 | "WITH average_failures AS (\n", 162 | "\n", 163 | " SELECT\n", 164 | " equipment_id,\n", 165 | " AVG(failure_count) AS avg_failures_per_month\n", 166 | " FROM\n", 167 | " equipment_failures\n", 168 | " WHERE\n", 169 | " failure_date >= NOW() - INTERVAL '1 year'\n", 170 | " GROUP BY\n", 171 | " equipment_id\n", 172 | "),\n", 173 | "\n", 174 | "-- Passo 2: Gerar a distribuição de Poisson para diferentes valores de falhas (k)\n", 175 | "poisson_distribution AS (\n", 176 | " SELECT\n", 177 | " e.equipment_id,\n", 178 | " generate_series(0, 20) AS k, -- Aqui, k varia de 0 a 20 falhas\n", 179 | " avg_failures_per_month,\n", 180 | " POWER(avg_failures_per_month, generate_series(0, 20)) / EXP(avg_failures_per_month) / FACTORIAL(generate_series(0, 20)) AS poisson_prob\n", 181 | " FROM\n", 182 | " average_failures e\n", 183 | ")\n", 184 | "\n", 185 | "-- Passo 3: Selecionar a distribuição de Poisson calculada\n", 186 | "SELECT\n", 187 | " equipment_id,\n", 188 | " k AS failures,\n", 189 | " poisson_prob AS probability\n", 190 | "FROM\n", 191 | " poisson_distribution\n", 192 | "ORDER BY\n", 193 | " equipment_id,\n", 194 | " failures;\n", 195 | "```" 196 | ], 197 | "metadata": { 198 | "id": "5Jnp4-kZm7QF" 199 | } 200 | }, 201 | { 202 | "cell_type": "markdown", 203 | "source": [ 204 | "# 📌 **Utilização de Recursos**\n", 205 | "- A Utilização de Recursos, refere-se ao percentual de tempo ou capacidade em que os recursos de entrega, como motos e bicicletas, são efetivamente utilizados para realizar entregas em comparação com o tempo disponível. Esta métrica é fundamental para avaliar a eficiência operacional dos ativos de entrega, indicando quão bem a empresa está gerenciando e maximizando o uso de seus recursos. Uma alta taxa de utilização geralmente sugere que os recursos estão sendo empregados de maneira eficaz, contribuindo para a redução de custos e aumento da produtividade.\n", 206 | "\n", 207 | "```sql\n", 208 | "SELECT recurso_entrega,\n", 209 | " COUNT(*) AS TotalPedidos,\n", 210 | " (COUNT(*) / (SELECT COUNT(*) FROM Pedidos)) * 100 AS UtilizacaoRecursos\n", 211 | "FROM Pedidos\n", 212 | "GROUP BY recurso_entrega;\n", 213 | "```" 214 | ], 215 | "metadata": { 216 | "id": "_acq98n6ijvA" 217 | } 218 | }, 219 | { 220 | "cell_type": "markdown", 221 | "source": [ 222 | "# 📌 **Taxa de Retenção de Clientes**\n", 223 | "- A Taxa de Retenção de Clientes é uma métrica que mede a porcentagem de clientes que continuam utilizando um serviço após fazerem seu primeiro pedido. Essa taxa é crucial para avaliar a fidelidade e a satisfação do cliente com o serviço oferecido. Uma alta taxa de retenção indica que os clientes estão satisfeitos e veem valor contínuo no serviço, sugerindo que a empresa é bem-sucedida em manter seus clientes engajados e interessados em continuar a relação comercial. Acompanhar essa métrica ajuda a empresa a entender a eficácia de suas estratégias de engajamento e retenção.\n", 224 | "\n", 225 | "```sql\n", 226 | "SELECT\n", 227 | " (COUNT(DISTINCT cliente_id) / (SELECT COUNT(DISTINCT cliente_id) FROM Pedidos WHERE data_pedido < '2024-01-01')) * 100 AS TaxaRetencaoClientes\n", 228 | "FROM Pedidos\n", 229 | "WHERE cliente_id IN (SELECT DISTINCT cliente_id FROM Pedidos WHERE data_pedido < '2024-01-01')\n", 230 | " AND data_pedido BETWEEN '2024-01-01' AND '2024-03-31';\n", 231 | "```" 232 | ], 233 | "metadata": { 234 | "id": "3bw9bLPzhpjX" 235 | } 236 | }, 237 | { 238 | "cell_type": "markdown", 239 | "source": [ 240 | "# 📌 **Taxa de retrabalho**\n", 241 | "- A Taxa de Retrabalho é uma métrica que mede a proporção de produtos ou serviços que precisaram ser revisados ou refeitos após a primeira tentativa de produção ou entrega não atender aos padrões de qualidade estabelecidos. Essa taxa é um indicador importante da eficiência e da qualidade dos processos de produção de uma empresa. Um valor alto na taxa de retrabalho sugere ineficiências ou problemas no processo de fabricação, que podem resultar em custos adicionais e atrasos na entrega, além de potencialmente afetar a satisfação do cliente. Acompanhar essa taxa ajuda as empresas a identificar áreas críticas para melhoria na produção ou na prestação de serviços.\n", 242 | "\n", 243 | "```sql\n", 244 | "SELECT (COUNT(CASE WHEN retrabalho = true THEN 1 ELSE NULL END) / CAST(COUNT(*) AS FLOAT)) * 100 AS rework_rate\n", 245 | "FROM operations_table;\n", 246 | "```" 247 | ], 248 | "metadata": { 249 | "id": "XZo_nq1gd9XI" 250 | } 251 | }, 252 | { 253 | "cell_type": "markdown", 254 | "source": [ 255 | "# 📌 **Taxa de eficiência da produção**\n", 256 | "- A Taxa de Eficiência da Produção é uma métrica que avalia o desempenho da produção de uma empresa em relação à sua capacidade máxima. Ela mede quão bem a empresa utiliza seus recursos produtivos e alcança seus objetivos de produção dentro de um dado período. Essa taxa é calculada comparando a quantidade de produtos fabricados com a capacidade máxima teórica que a planta poderia produzir operando em condições ideais, geralmente expressa em porcentagem. Uma alta taxa de eficiência indica que a empresa está próxima de atingir sua capacidade total, maximizando o uso de suas instalações e equipamentos, enquanto uma taxa baixa pode indicar subutilização, problemas operacionais ou ineficiências.\n", 257 | "\n", 258 | "```sql\n", 259 | "SELECT\n", 260 | " DATE_FORMAT(data, '%Y-%m') AS month,\n", 261 | " SUM(produto_produzido) AS total_produced,\n", 262 | " AVG(capacidade) AS average_capacity,\n", 263 | " (SUM(produto_produzido) / (AVG(capacidade) * COUNT(*))) * 100 AS production_efficiency\n", 264 | "FROM production_table\n", 265 | "GROUP BY month\n", 266 | "ORDER BY month;\n", 267 | "```" 268 | ], 269 | "metadata": { 270 | "id": "BgTet5uyeoHQ" 271 | } 272 | }, 273 | { 274 | "cell_type": "markdown", 275 | "source": [ 276 | "# 📌 **Tempo médio de ciclo de operação**\n", 277 | "- O Tempo Médio de Ciclo de Operação é uma métrica que mede o tempo necessário para concluir um ciclo completo de operações dentro de um processo de produção ou serviço, desde o início até o fim. Esta métrica é crucial para avaliar a eficiência e a rapidez dos processos de uma empresa. Um ciclo pode incluir várias etapas, como fabricação, montagem e embalagem de um produto, ou desde o recebimento até a finalização de um pedido de serviço. Reduzir o tempo médio de ciclo geralmente resulta em maior produtividade e pode melhorar a capacidade de resposta ao cliente, reduzindo o tempo total de espera para a entrega de produtos ou serviços.\n", 278 | "\n", 279 | "```sql\n", 280 | "SELECT AVG(DATEDIFF(complete_date, start_date)) AS avg_cycle_time\n", 281 | "FROM operations_table;\n", 282 | "```" 283 | ], 284 | "metadata": { 285 | "id": "WUsYVVP5e8jY" 286 | } 287 | }, 288 | { 289 | "cell_type": "markdown", 290 | "source": [ 291 | "# 📌 **Índice de Satisfação do Cliente**\n", 292 | "- O Índice de Satisfação do Cliente é uma métrica que mede o grau de satisfação dos clientes com os serviços ou produtos de uma empresa. Geralmente, ele é calculado com base nas avaliações ou notas que os clientes fornecem após a experiência de compra ou uso do serviço. Essas avaliações são então agregadas para formar uma pontuação média que reflete a satisfação geral dos clientes. Este índice é fundamental para entender a percepção dos clientes e identificar áreas que necessitam de melhorias para aumentar a qualidade do serviço e a fidelidade do cliente.\n", 293 | "\n", 294 | "```sql\n", 295 | "SELECT AVG(avaliacao_cliente) AS IndiceSatisfacaoCliente\n", 296 | "FROM Avaliacoes;\n", 297 | "```" 298 | ], 299 | "metadata": { 300 | "id": "O3LZqAr2iAc5" 301 | } 302 | } 303 | ] 304 | } -------------------------------------------------------------------------------- /08 - Jurídico/queries_juridico.ipynb: -------------------------------------------------------------------------------- 1 | { 2 | "nbformat": 4, 3 | "nbformat_minor": 0, 4 | "metadata": { 5 | "colab": { 6 | "provenance": [] 7 | }, 8 | "kernelspec": { 9 | "name": "python3", 10 | "display_name": "Python 3" 11 | }, 12 | "language_info": { 13 | "name": "python" 14 | } 15 | }, 16 | "cells": [ 17 | { 18 | "cell_type": "markdown", 19 | "source": [ 20 | "# 📊 Repositório de Consultas SQL para Analistas de Dados: **Departamento Juridico**\n", 21 | "***\n", 22 | "### **Dicionário de termos:**\n", 23 | "- *Litígios:* se referem a disputas legais ou controvérsias que são resolvidas em um tribunal ou através de arbitragem. No contexto jurídico,\n", 24 | "um litígio pode envolver qualquer tipo de conflito legal, como disputas contratuais, questões trabalhistas, violações de direitos autorais, reclamações de consumidores, e mais.\n", 25 | "Esses processos podem ser civis ou criminais, e geralmente envolvem duas ou mais partes que buscam uma solução legal para o seu desacordo.\n", 26 | "\n", 27 | "***\n", 28 | "\n", 29 | "- 🔍 Contribuições: Estamos abertos a contribuições da comunidade de analistas de dados! Se você tiver consultas SQL úteis que gostaria de compartilhar ou sugestões para melhorias, sinta-se à vontade para enviar um pull request. Juntos, podemos expandir e aprimorar este repositório para beneficiar toda a comunidade de análise de dados.\n", 30 | "- 🎯 Sinta-se à vontade para explorar, utilizar e contribuir para este repositório, e que ele possa ser uma ferramenta valiosa em sua jornada como analista de dados!" 31 | ], 32 | "metadata": { 33 | "id": "vjqSg4TxgLfQ" 34 | } 35 | }, 36 | { 37 | "cell_type": "markdown", 38 | "source": [ 39 | "# 📌 **Número de Litígios por Período**\n", 40 | "- O \"Número de Litígios por Período\" é uma métrica que contabiliza a quantidade de novos processos legais iniciados contra ou pela empresa durante um intervalo de tempo específico. Essa medida ajuda a entender a frequência com que a empresa se envolve em disputas judiciais, oferecendo insights sobre possíveis questões de conformidade, riscos legais, ou disputas comerciais. Monitorar essa métrica é crucial para a gestão de riscos e para avaliar a estabilidade legal da organização, influenciando decisões estratégicas e operacionais.\n", 41 | "\n", 42 | "```sql\n", 43 | "SELECT EXTRACT(MONTH FROM data_registro) AS mes, COUNT(DISTINCT processo_legal_id) AS TotalLitigios\n", 44 | "FROM processos\n", 45 | "WHERE DataInicio BETWEEN '2023-01-01' AND '2023-12-31'\n", 46 | "GROUP BY 1\n", 47 | "ORDER BY 1 DESC;\n", 48 | "```" 49 | ], 50 | "metadata": { 51 | "id": "wIsPj1FbiP0n" 52 | } 53 | }, 54 | { 55 | "cell_type": "markdown", 56 | "source": [ 57 | "# 📌 **Taxa de Sucesso em Litígios**\n", 58 | "- A \"Taxa de Sucesso em Litígios\" é uma métrica que indica o percentual de casos legais ganhos pela empresa em relação ao total de casos concluídos em um período específico. Essa taxa fornece uma avaliação da eficácia da estratégia legal da empresa e da competência de sua equipe jurídica. Uma alta taxa de sucesso pode indicar uma sólida preparação de casos e uma boa tomada de decisão em litígios, enquanto uma taxa baixa pode sinalizar a necessidade de revisão nas abordagens legais ou no manejo dos processos judiciais. Esta métrica é essencial para avaliar o desempenho e a eficiência das operações legais da organização.\n", 59 | "\n", 60 | "```sql\n", 61 | "SELECT (SUM(CASE WHEN Resultado = 'Ganho' THEN 1 ELSE 0 END) / COUNT(DISTINCT processo_legal_id)) * 100 AS TaxaSucesso\n", 62 | "FROM processos\n", 63 | "WHERE DataFim IS NOT NULL;\n", 64 | "```" 65 | ], 66 | "metadata": { 67 | "id": "SGP8CC51i6QJ" 68 | } 69 | }, 70 | { 71 | "cell_type": "markdown", 72 | "source": [ 73 | "# 📌 **Taxa de Litígios Encerrados no Mesmo Ano**\n", 74 | "- A \"Taxa de Litígios Encerrados no Mesmo Ano\" mensura a porcentagem de processos que foram concluídos no mesmo ano em que foram abertos. Ela permite avaliar a agilidade do time jurídico na resolução de disputas e identificar possíveis gargalos ou atrasos nos processos legais.\n", 75 | "\n", 76 | "```sql\n", 77 | "SELECT\n", 78 | " (COUNT(DISTINCT CASE\n", 79 | " WHEN EXTRACT(YEAR FROM DataInicio) = EXTRACT(YEAR FROM DataFim)\n", 80 | " THEN processo_legal_id\n", 81 | " END)\n", 82 | " / COUNT(DISTINCT processo_legal_id)) * 100 AS TaxaEncerradosMesmoAno\n", 83 | "FROM processos\n", 84 | "WHERE DataFim IS NOT NULL;\n", 85 | "```" 86 | ], 87 | "metadata": { 88 | "id": "g_hu4govgMlV" 89 | } 90 | }, 91 | { 92 | "cell_type": "markdown", 93 | "source": [ 94 | "# 📌 **Custo Médio por Litígio**\n", 95 | "- O \"Custo Médio por Litígio\" é uma métrica que calcula a média dos custos totais associados aos processos judiciais em que a empresa se envolve, incluindo honorários de advogados, taxas judiciais e outros encargos relacionados. Esta métrica fornece uma visão sobre o impacto financeiro dos litígios na empresa e ajuda a avaliar a eficiência e a eficácia da gestão dessas questões legais. Um custo médio elevado por litígio pode indicar processos complexos ou longos, enquanto um custo mais baixo pode refletir uma gestão mais eficiente ou menos litígios complicados. É essencial para o planejamento financeiro e a análise de risco legal.\n", 96 | "\n", 97 | "```sql\n", 98 | "SELECT AVG(CustoTotal) AS CustoMedio\n", 99 | "FROM processos;\n", 100 | "```" 101 | ], 102 | "metadata": { 103 | "id": "3aAAMcnZdRvI" 104 | } 105 | }, 106 | { 107 | "cell_type": "markdown", 108 | "source": [ 109 | "# 📌 **Tempo Médio de Resolução de Casos**\n", 110 | "- O \"Tempo Médio de Resolução de Casos\" é uma métrica que mede o intervalo médio de tempo entre a data de início e a data de conclusão de processos judiciais ou disputas legais em que a empresa está envolvida. Esta métrica é utilizada para avaliar a eficiência do processo legal, indicando o quão rapidamente a empresa e seus advogados conseguem resolver litígios. Um tempo médio de resolução mais curto pode indicar uma gestão eficaz e ágil dos casos legais, enquanto um tempo mais longo pode sugerir a necessidade de otimizações nos procedimentos ou na estratégia legal. É crucial para o planejamento e para entender a carga de trabalho do departamento jurídico.\n", 111 | "\n", 112 | "```sql\n", 113 | "SELECT AVG(DATEDIFF(DataFim, DataInicio)) AS TempoMedioResolucao\n", 114 | "FROM processos\n", 115 | "WHERE DataFim IS NOT NULL;\n", 116 | "```" 117 | ], 118 | "metadata": { 119 | "id": "HF1pe8ckiaiX" 120 | } 121 | }, 122 | { 123 | "cell_type": "markdown", 124 | "source": [ 125 | "# 📌 **Processos por Categoria**\n", 126 | "- \"Processos por Categoria\" é uma métrica que categoriza e quantifica os processos legais em que uma empresa está envolvida, organizando-os por tipo, como trabalhista, civil, regulatório, entre outros. Esta análise ajuda a entender a distribuição dos desafios legais enfrentados pela empresa e permite uma avaliação mais detalhada de áreas que podem requerer atenção especial ou recursos adicionais. Por exemplo, um alto número de casos trabalhistas pode indicar problemas nas práticas de gestão de recursos humanos, enquanto muitos processos regulatórios podem refletir um ambiente operacional complexo. Essa categorização é fundamental para gerenciar riscos e alocar adequadamente os recursos legais.\n", 127 | "\n", 128 | "```sql\n", 129 | "SELECT Tipo, COUNT(DISTINCT processo_legal_id) AS Quantidade\n", 130 | "FROM processos\n", 131 | "GROUP BY Tipo\n", 132 | "ORDER BY 2 DESC;\n", 133 | "```" 134 | ], 135 | "metadata": { 136 | "id": "z15IBIpRdAJH" 137 | } 138 | }, 139 | { 140 | "cell_type": "markdown", 141 | "source": [ 142 | "# 📌 **Percentual de Acordos**\n", 143 | "- O \"Percentual de Acordos\" é uma métrica que indica a proporção de processos legais que são resolvidos por meio de acordos entre as partes envolvidas, antes de chegar a um julgamento formal. Essa taxa é importante para avaliar a disposição da empresa em resolver disputas de maneira amigável e eficiente, potencialmente economizando tempo e recursos que seriam gastos em litígios prolongados. Um alto percentual de acordos pode refletir uma estratégia jurídica proativa e a busca por soluções menos onerosas e mais rápidas, enquanto um percentual baixo pode indicar uma tendência a disputar os casos através de julgamento completo.\n", 144 | "\n", 145 | "```sql\n", 146 | "SELECT\n", 147 | " (COUNT(DISTINCT CASE WHEN Resultado = 'Acordo' THEN processo_legal_id END) / COUNT(DISTINCT processo_legal_id)) * 100 AS PercentualAcordos\n", 148 | "FROM processos\n", 149 | "WHERE DataFim IS NOT NULL;\n", 150 | "```" 151 | ], 152 | "metadata": { 153 | "id": "_acq98n6ijvA" 154 | } 155 | }, 156 | { 157 | "cell_type": "markdown", 158 | "source": [ 159 | "# 📌 **Lista de Contratos Próximos do Vencimento**\n", 160 | "- A \"Lista de Contratos Próximos do Vencimento\" é uma ferramenta de gerenciamento que identifica contratos cuja data de término está se aproximando. Essa lista é crucial para que as empresas possam agir de forma proativa, seja para preparar a renovação desses contratos, renegociar termos, ou encerrar acordos conforme necessário. Manter essa lista atualizada e monitorá-la regularmente ajuda a evitar interrupções nos serviços ou relações comerciais e garante que as decisões sobre os contratos sejam tomadas com tempo suficiente para uma transição suave.\n", 161 | "\n", 162 | "```sql\n", 163 | "SELECT ContratoID, NomeFornecedor, DataInicio, DataFim\n", 164 | "FROM contratos\n", 165 | "WHERE DataFim BETWEEN CURRENT_DATE AND DATE_ADD(CURRENT_DATE, INTERVAL 3 MONTH)\n", 166 | "ORDER BY DataFim;\n", 167 | "```" 168 | ], 169 | "metadata": { 170 | "id": "3bw9bLPzhpjX" 171 | } 172 | }, 173 | { 174 | "cell_type": "markdown", 175 | "source": [ 176 | "# 📌 **Contratos Vencidos e Não Renovados**\n", 177 | "- \"Contratos Vencidos e Não Renovados\" refere-se à categoria de contratos cujo prazo de validade já expirou, mas que ainda não passaram pelo processo de renovação ou formalização de encerramento. Essa situação pode representar um risco legal ou operacional para a empresa, pois a continuação de serviços ou parcerias sem um contrato válido pode levar a disputas ou perdas financeiras. Identificar esses contratos é crucial para garantir que a empresa tome medidas proativas para renovar ou finalizar formalmente esses acordos, assegurando a conformidade legal e a continuidade dos negócios.\n", 178 | "\n", 179 | "```sql\n", 180 | "SELECT ContratoID, NomeFornecedor, DataInicio, DataFim\n", 181 | "FROM contratos\n", 182 | "WHERE DataFim < CURRENT_DATE AND Renovado = 'Não'\n", 183 | "ORDER BY DataFim;\n", 184 | "```" 185 | ], 186 | "metadata": { 187 | "id": "XZo_nq1gd9XI" 188 | } 189 | }, 190 | { 191 | "cell_type": "markdown", 192 | "source": [ 193 | "# 📌 **Resumo dos Contratos por Fornecedor**\n", 194 | "- O \"Resumo dos Contratos por Fornecedor\" é uma ferramenta de gestão que proporciona uma visão geral dos contratos ativos e encerrados associados a cada fornecedor com quem uma empresa tem relações. Essa visão consolidada ajuda a monitorar e avaliar a extensão e a natureza das relações contratuais com cada fornecedor, facilitando a gestão eficiente dessas parcerias. Ter acesso a um resumo organizado permite às empresas identificar oportunidades para negociações melhores, avaliar o desempenho dos fornecedores, e garantir que as condições contratuais estejam sendo cumpridas, contribuindo para uma melhor estratégia de compras e gestão de fornecedores.\n", 195 | "\n", 196 | "```sql\n", 197 | "SELECT\n", 198 | "\tNomeFornecedor,\n", 199 | "\tCOUNT(DISTINCT ContratoID) AS TotalContratos,\n", 200 | "\tSUM(CASE WHEN DataFim >= CURRENT_DATE THEN 1 ELSE 0 END) AS ContratosAtivos\n", 201 | "FROM contratos\n", 202 | "GROUP BY NomeFornecedor;\n", 203 | "```" 204 | ], 205 | "metadata": { 206 | "id": "BgTet5uyeoHQ" 207 | } 208 | }, 209 | { 210 | "cell_type": "markdown", 211 | "source": [ 212 | "# 📌 **Detalhes dos Contratos com Cláusulas Específicas**\n", 213 | "- \"Detalhes dos Contratos com Cláusulas Específicas\" é uma análise focada em identificar e examinar contratos que incluem cláusulas particulares ou não convencionais que requerem atenção especial. Essas cláusulas podem incluir termos de penalidade, exclusividade, renovação automática, ou quaisquer outras condições que possam impor obrigações significativas ou riscos. Este tipo de análise é crucial para a gestão de riscos, pois permite às empresas compreender melhor as obrigações legais, financeiras e operacionais específicas desses contratos e tomar medidas proativas para lidar com elas adequadamente. O objetivo é garantir que a empresa esteja ciente e preparada para qualquer eventualidade que possa surgir dessas cláusulas especiais.\n", 214 | "\n", 215 | "```sql\n", 216 | "SELECT ContratoID, NomeFornecedor, Detalhes\n", 217 | "FROM contratos\n", 218 | "WHERE Detalhes LIKE '%penalidade%' OR Detalhes LIKE '%exclusividade%';\n", 219 | "```" 220 | ], 221 | "metadata": { 222 | "id": "WUsYVVP5e8jY" 223 | } 224 | }, 225 | { 226 | "cell_type": "markdown", 227 | "source": [ 228 | "# 📌 **Acompanhamento de Alterações Contratuais**\n", 229 | "- \"Acompanhamento de Alterações Contratuais\" refere-se ao processo de monitoramento e registro de todas as modificações feitas em contratos ao longo do tempo. Esta prática é essencial para manter um registro detalhado das mudanças, incluindo adições, exclusões ou ajustes em termos e condições. O acompanhamento de alterações é crucial para auditorias internas e externas, bem como para garantir a conformidade com as normas regulatórias vigentes. Ele ajuda a assegurar transparência, responsabilidade e integridade no gerenciamento de contratos, fornecendo uma base sólida para revisões e decisões relacionadas a contratos modificados.\n", 230 | "\n", 231 | "```sql\n", 232 | "SELECT ContratoID, DataModificacao, ModificadoPor, DescricaoModificacao\n", 233 | "FROM historico_modificacoes_contratos\n", 234 | "ORDER BY DataModificacao DESC;\n", 235 | "```" 236 | ], 237 | "metadata": { 238 | "id": "O3LZqAr2iAc5" 239 | } 240 | } 241 | ] 242 | } -------------------------------------------------------------------------------- /09 - Suporte/queries_suporte.ipynb: -------------------------------------------------------------------------------- 1 | { 2 | "nbformat": 4, 3 | "nbformat_minor": 0, 4 | "metadata": { 5 | "colab": { 6 | "provenance": [] 7 | }, 8 | "kernelspec": { 9 | "name": "python3", 10 | "display_name": "Python 3" 11 | }, 12 | "language_info": { 13 | "name": "python" 14 | } 15 | }, 16 | "cells": [ 17 | { 18 | "cell_type": "markdown", 19 | "source": [ 20 | "# 📊 Repositório de Consultas SQL para Analistas de Dados: **Departamento Suporte**\n", 21 | "- Os KPIs aqui exibidos são essenciais para monitorar a eficácia e eficiência do suporte, além de ajudar na tomada de decisões para melhorar continuamente o serviço oferecido aos usuários.\n", 22 | "- 🔍 Contribuições: Estamos abertos a contribuições da comunidade de analistas de dados! Se você tiver consultas SQL úteis que gostaria de compartilhar ou sugestões para melhorias, sinta-se à vontade para enviar um pull request. Juntos, podemos expandir e aprimorar este repositório para beneficiar toda a comunidade de análise de dados.\n", 23 | "- 🎯 Sinta-se à vontade para explorar, utilizar e contribuir para este repositório, e que ele possa ser uma ferramenta valiosa em sua jornada como analista de dados!" 24 | ], 25 | "metadata": { 26 | "id": "vjqSg4TxgLfQ" 27 | } 28 | }, 29 | { 30 | "cell_type": "markdown", 31 | "source": [ 32 | "# 📌 **Tempo Médio de Resolução**\n", 33 | "- O \"Tempo Médio de Resolução\" é uma métrica de desempenho usada para avaliar a eficiência dos serviços de suporte ao cliente, medindo o tempo médio que leva para resolver um ticket desde sua abertura até sua conclusão. Essa métrica ajuda a entender a rapidez e a eficácia com que uma equipe de suporte pode diagnosticar e solucionar problemas ou questões apresentadas pelos clientes. Um tempo médio de resolução menor geralmente indica um serviço de suporte mais eficiente, resultando em maior satisfação do cliente e melhor experiência geral do usuário.\n", 34 | "\n", 35 | "```sql\n", 36 | "SELECT AVG(TIMESTAMPDIFF(MINUTE, created_at, resolved_at)) AS tempo_medio_resolucao\n", 37 | "FROM tickets_suporte\n", 38 | "WHERE resolved_at IS NOT NULL AND data BETWEEN '2024-04-01' AND '2024-04-30';\n", 39 | "```\n" 40 | ], 41 | "metadata": { 42 | "id": "wIsPj1FbiP0n" 43 | } 44 | }, 45 | { 46 | "cell_type": "markdown", 47 | "source": [ 48 | "# 📌 **Tempo Médio de Resposta (TMR)**\n", 49 | "- O \"Tempo Médio de Resposta\" (TMR) é uma métrica crucial nos serviços de suporte ao cliente que mede o tempo médio decorrido desde a criação de um ticket até o momento em que o suporte fornece uma primeira resposta ao cliente. Esta métrica é fundamental para avaliar a rapidez e a eficiência da equipe de suporte em reconhecer e iniciar a gestão de questões ou problemas dos clientes. Um TMR baixo é geralmente indicativo de um serviço ágil, o que pode significar uma melhor satisfação do cliente, pois uma resposta rápida muitas vezes é percebida como um indicativo de um serviço atencioso e eficiente.\n", 50 | "\n", 51 | "```sql\n", 52 | "SELECT AVG(TIMESTAMPDIFF(MINUTE, created_at, first_response_at)) AS tempo_medio_resposta\n", 53 | "FROM tickets_suporte\n", 54 | "WHERE data BETWEEN '2024-04-01' AND '2024-04-30';\n", 55 | "```" 56 | ], 57 | "metadata": { 58 | "id": "SGP8CC51i6QJ" 59 | } 60 | }, 61 | { 62 | "cell_type": "markdown", 63 | "source": [ 64 | "# 📌 **Taxa de Satisfação do Cliente (CSAT)**\n", 65 | "- A \"Taxa de Satisfação do Cliente\" (CSAT) é uma métrica chave que mede a porcentagem de clientes que classificaram a qualidade do serviço ou produto como 'Bom' ou 'Excelente'. Normalmente, é obtida através de pesquisas de satisfação enviadas aos clientes após interações ou transações específicas. Essa taxa é um indicador direto da percepção do cliente sobre a empresa e é essencial para avaliar o desempenho do serviço ao cliente, a qualidade do produto, e a eficácia geral das estratégias de atendimento. Um alto CSAT sugere que os clientes estão satisfeitos com a empresa, o que pode levar a maior lealdade do cliente e a recomendações positivas.\n", 66 | "\n", 67 | "```sql\n", 68 | "SELECT (COUNT(*) FILTER (WHERE satisfaction IN ('Bom', 'Excelente')) * 100.0 / COUNT(*)) AS taxa_satisfacao\n", 69 | "FROM avaliacoes_suporte\n", 70 | "WHERE data_avaliacao BETWEEN '2024-04-01' AND '2024-04-30';\n", 71 | "```" 72 | ], 73 | "metadata": { 74 | "id": "3aAAMcnZdRvI" 75 | } 76 | }, 77 | { 78 | "cell_type": "markdown", 79 | "source": [ 80 | "# 📌 **Índice de satisfação do cliente (NPS - Net Promoter Score)**\n", 81 | "- **NPS (Net Promoter Score)** é uma métrica de lealdade do cliente que avalia a probabilidade de um cliente recomendar uma empresa, produto ou serviço a outras pessoas. Os clientes são classificados em três categorias com base em suas respostas a uma pergunta simples: \"Em uma escala de 0 a 10, quão provável é que você recomende nossa empresa/produto/serviço a um amigo ou colega?\":\n", 82 | "\n", 83 | "- **Promotores (Clientes que dão uma pontuação de 9 ou 10)**: Clientes altamente satisfeitos e leais que provavelmente recomendarão a empresa.\n", 84 | "- **Neutros (Clientes que dão uma pontuação de 7 ou 8)**: Clientes satisfeitos, mas não entusiasmados; são vulneráveis à concorrência.\n", 85 | "- **Detratores (Clientes que dão uma pontuação de 0 a 6)**: Clientes insatisfeitos que podem prejudicar a reputação da empresa através de críticas negativas.\n", 86 | "\n", 87 | "O NPS é calculado como a porcentagem de promotores menos a porcentagem de detratores.\n", 88 | "\n", 89 | "### Importância do NPS:\n", 90 | "\n", 91 | "- **Indicador de Lealdade**: Ajuda a medir a fidelidade do cliente e prever o crescimento a longo prazo.\n", 92 | "- **Identificação de Problemas**: Destaca áreas onde a experiência do cliente pode ser melhorada, proporcionando feedback acionável.\n", 93 | "- **Benchmarking**: Permite comparar o desempenho com concorrentes e padrões da indústria.\n", 94 | "- **Foco no Cliente**: Orienta estratégias para aumentar a satisfação e lealdade, promovendo uma cultura centrada no cliente.\n", 95 | "\n", 96 | "Para departamentos como Marketing, Suporte (Atendimento ao Cliente), e Produto, o NPS é essencial para entender e melhorar a experiência do cliente, aumentando a retenção e impulsionando o crescimento do negócio.\n", 97 | "\n", 98 | "Vamos imaginar que temos uma tabela chamada `customer_feedback` com as seguintes colunas:\n", 99 | "\n", 100 | "- `feedback_id`: ID do feedback.\n", 101 | "- `customer_id`: ID do cliente.\n", 102 | "- `order_id`: ID do pedido.\n", 103 | "- `nps_score`: Pontuação NPS (valor de 0 a 10).\n", 104 | "- `feedback_date`: Data do feedback.\n", 105 | "\n", 106 | "\n", 107 | "\n", 108 | "Aqui está uma query SQL para calcular o NPS para um determinado período:\n", 109 | "\n", 110 | "```sql\n", 111 | "SELECT\n", 112 | " DATE_TRUNC('month', feedback_date) AS month,\n", 113 | " (SUM(CASE WHEN nps_score >= 9 THEN 1 ELSE 0 END) * 100.0 / COUNT(DISTINCT order_id)) -\n", 114 | " (SUM(CASE WHEN nps_score <= 6 THEN 1 ELSE 0 END) * 100.0 / COUNT(DISTINCT order_id)) AS nps_score,\n", 115 | " COUNT(DISTINCT order_id) AS total_orders\n", 116 | "FROM\n", 117 | " customer_feedback\n", 118 | "WHERE\n", 119 | " feedback_date BETWEEN '2024-01-01' AND '2024-12-31'\n", 120 | "GROUP BY\n", 121 | " DATE_TRUNC('month', feedback_date)\n", 122 | "ORDER BY\n", 123 | " month;\n", 124 | "```" 125 | ], 126 | "metadata": { 127 | "id": "A637pTFts62O" 128 | } 129 | }, 130 | { 131 | "cell_type": "markdown", 132 | "source": [ 133 | "# 📌 **Índice de esforço do cliente (CES - Customer Effort Score)**\n", 134 | "- **CES (Customer Effort Score)** é uma métrica utilizada para avaliar o nível de esforço que um cliente precisa fazer para interagir com uma empresa, seja para resolver um problema, obter uma informação ou completar uma transação. Os clientes são solicitados a avaliar, geralmente em uma escala de 1 a 5 ou 1 a 7, o quão fácil foi a sua experiência.\n", 135 | "\n", 136 | "### Importância do CES:\n", 137 | "\n", 138 | "1. **Previsão de Lealdade do Cliente**:\n", 139 | " - *Menor Esforço, Maior Lealdade*: Clientes que encontram menos dificuldades em suas interações tendem a ser mais leais e a continuar usando os serviços da empresa. É o que mostra uma pesquisa de 2010 da Harvard Business Review chamada “Stop Trying to Delight Your Costumers”. O resultado da pesquisa apontou que quanto mais esforço um cliente precisa fazer para se relacionar com a sua empresa, menor a chance dele ser fiel a ela. Por que a fidelidade dos clientes é tão importante? Existem muitas respostas para essa pergunta. Uma delas é que é de *5 a 25 vezes mais caro adquirir um novo cliente do que manter um cliente atual*.\n", 140 | "\n", 141 | "2. **Identificação de Problemas Operacionais**:\n", 142 | " - *Áreas de Melhoria*: Um alto CES pode indicar processos ineficientes ou complicados que precisam ser simplificados. Isso ajuda a empresa a identificar onde os clientes estão enfrentando dificuldades.\n", 143 | "\n", 144 | "3. **Redução de Custos**:\n", 145 | " - *Menos Chamadas de Suporte*: Clientes que têm uma experiência fácil provavelmente precisarão de menos suporte, reduzindo os custos associados ao atendimento ao cliente.\n", 146 | "\n", 147 | "4. **Aumento da Satisfação do Cliente**:\n", 148 | " - *Experiência Positiva*: Um menor esforço resulta em uma experiência mais positiva, aumentando a satisfação geral do cliente.\n", 149 | "\n", 150 | "5. **Vantagem Competitiva**:\n", 151 | " - *Diferenciação*: Empresas que proporcionam interações fáceis e sem fricções se destacam perante a concorrência, atraindo e retendo mais clientes.\n", 152 | "\n", 153 | "### Aplicação do CES em Departamentos:\n", 154 | "\n", 155 | "- **Atendimento ao Cliente**: Avaliar e melhorar a eficiência dos processos de suporte, garantindo que os clientes obtenham respostas rápidas e resoluções eficazes.\n", 156 | "- **Suporte Técnico**: Medir a facilidade com que os clientes resolvem problemas técnicos, ajudando a identificar áreas onde o suporte técnico pode ser aprimorado.\n", 157 | "- **Produto e Desenvolvimento**: Informar decisões sobre o design e a usabilidade de produtos, garantindo que os novos desenvolvimentos sejam intuitivos e fáceis de usar.\n", 158 | "- **Marketing e Vendas**: Utilizar feedbacks para ajustar a comunicação e o treinamento das equipes, assegurando que os clientes tenham uma experiência de compra sem complicações.\n", 159 | "\n", 160 | "Em resumo, o CES é uma ferramenta valiosa para qualquer departamento que tenha interação direta com clientes, ajudando a garantir que essas interações sejam o mais simples e eficazes possível.\n", 161 | "\n", 162 | "Vamos imaginar uma situação onde os clientes de uma empresa de delivery avaliam o esforço necessário para resolver um problema ou completar uma tarefa. Suponhamos que temos uma tabela chamada `customer_feedback` com as seguintes colunas:\n", 163 | "\n", 164 | "- `feedback_id`: ID do feedback.\n", 165 | "- `customer_id`: ID do cliente.\n", 166 | "- `order_id`: ID do pedido.\n", 167 | "- `effort_score`: Pontuação do esforço (valor de 1 a 5, onde 1 é pouco esforço e 5 é muito esforço).\n", 168 | "- `feedback_date`: Data do feedback.\n", 169 | "\n", 170 | "A query a seguir calcula o CES médio (Customer Effort Score) para um determinado período:\n", 171 | "\n", 172 | "```sql\n", 173 | "SELECT\n", 174 | " AVG(effort_score) AS average_ces,\n", 175 | " COUNT(*) AS total_responses,\n", 176 | " DATE_TRUNC('month', feedback_date) AS month\n", 177 | "FROM\n", 178 | " customer_feedback\n", 179 | "WHERE\n", 180 | " feedback_date BETWEEN '2024-01-01' AND '2024-12-31'\n", 181 | "GROUP BY\n", 182 | " DATE_TRUNC('month', feedback_date)\n", 183 | "ORDER BY\n", 184 | " month;\n", 185 | "```\n", 186 | "\n", 187 | "Explicação:\n", 188 | "- `AVG(effort_score) AS average_ces`: Calcula a média da pontuação de esforço.\n", 189 | "- `COUNT(*) AS total_responses`: Conta o número total de respostas para o período.\n", 190 | "- `DATE_TRUNC('month', feedback_date) AS month`: Agrupa os resultados por mês.\n", 191 | "- `WHERE feedback_date BETWEEN '2024-01-01' AND '2024-12-31'`: Filtra os feedbacks dentro do ano de 2024.\n", 192 | "- `GROUP BY DATE_TRUNC('month', feedback_date)`: Agrupa os dados por mês.\n", 193 | "- `ORDER BY month`: Ordena os resultados por mês.\n", 194 | "\n", 195 | "Esta query fornecerá o CES médio por mês ao longo do ano, ajudando a empresa de delivery a monitorar as tendências de esforço dos clientes ao longo do tempo." 196 | ], 197 | "metadata": { 198 | "id": "bsV_VOeip4Vu" 199 | } 200 | }, 201 | { 202 | "cell_type": "markdown", 203 | "source": [ 204 | "# 📌 **Primeira Taxa de Resolução de Contato (FCR)**\n", 205 | "- A \"Primeira Taxa de Resolução de Contato\" (FCR) é uma métrica de desempenho no atendimento ao cliente que mede o percentual de tickets ou problemas resolvidos na primeira interação com o cliente, sem a necessidade de seguimento ou intervenções adicionais. Esta métrica é crucial para avaliar a eficiência e a eficácia do serviço de suporte, indicando a capacidade da equipe em resolver questões rapidamente e na primeira tentativa. Uma alta FCR geralmente resulta em maior satisfação do cliente e eficiência operacional, pois reduz a carga de trabalho do suporte ao minimizar o número de interações necessárias para resolver um problema.\n", 206 | "\n", 207 | "```sql\n", 208 | "SELECT (COUNT(*) FILTER (WHERE resolvido_primeiro_contato = TRUE) * 100.0 / COUNT(*)) AS fcr\n", 209 | "FROM tickets_suporte\n", 210 | "WHERE data BETWEEN '2024-04-01' AND '2024-04-30';\n", 211 | "```" 212 | ], 213 | "metadata": { 214 | "id": "HF1pe8ckiaiX" 215 | } 216 | }, 217 | { 218 | "cell_type": "markdown", 219 | "source": [ 220 | "# 📌 **Taxa de Reabertura de Tickets**\n", 221 | "- A \"Taxa de Reabertura de Tickets\" é uma métrica utilizada no suporte ao cliente para medir o percentual de tickets que foram reabertos após serem inicialmente marcados como resolvidos. Esta taxa é importante para avaliar a eficácia da resolução de problemas na primeira tentativa e a qualidade do suporte oferecido. Um valor alto nesta taxa pode indicar que os problemas não estão sendo completamente resolvidos na primeira interação, levando a insatisfações do cliente e ineficiências operacionais, pois requer trabalho adicional e recursos para tratar repetidamente os mesmos problemas. Reduzir a taxa de reabertura é crucial para melhorar a satisfação do cliente e a eficiência do serviço de suporte.\n", 222 | "\n", 223 | "```sql\n", 224 | "SELECT (COUNT(*) FILTER (WHERE reaberto = TRUE) * 100.0 / COUNT(*)) AS taxa_reabertura\n", 225 | "FROM tickets_suporte\n", 226 | "WHERE data BETWEEN '2024-04-01' AND '2024-04-30';\n", 227 | "```\n" 228 | ], 229 | "metadata": { 230 | "id": "z15IBIpRdAJH" 231 | } 232 | }, 233 | { 234 | "cell_type": "markdown", 235 | "source": [ 236 | "# 📌 **Volume de Tickets**\n", 237 | "- O \"Volume de Tickets\" é uma métrica usada para quantificar o número total de tickets ou solicitações de suporte recebidos por um serviço de atendimento ao cliente ou suporte técnico durante um período específico. Essa métrica é essencial para avaliar a carga de trabalho da equipe de suporte, planejar recursos necessários e entender os padrões de demanda dos clientes. Um aumento no volume de tickets pode indicar problemas mais amplos com um produto ou serviço, enquanto uma diminuição pode sugerir melhorias ou reduções sazonais na demanda de suporte.\n", 238 | "\n", 239 | "```sql\n", 240 | "SELECT data, COUNT(*) AS volume_tickets\n", 241 | "FROM tickets_suporte\n", 242 | "GROUP BY data\n", 243 | "ORDER BY data;\n", 244 | "```" 245 | ], 246 | "metadata": { 247 | "id": "_acq98n6ijvA" 248 | } 249 | }, 250 | { 251 | "cell_type": "markdown", 252 | "source": [ 253 | "# 📌 **Percentual de Tickets Escalados**\n", 254 | "- O \"Percentual de Tickets Escalados\" é uma métrica que mede a proporção de tickets de suporte que precisam ser encaminhados para equipes especializadas ou de nível superior dentro de uma organização de suporte ao cliente. Esta métrica é importante para avaliar a complexidade dos problemas recebidos e a eficiência do primeiro nível de suporte. Um alto percentual de escalonamentos pode indicar que os problemas são complexos ou que o suporte de primeiro nível pode precisar de mais treinamento ou recursos para resolver questões sem escalonamento, enquanto um percentual mais baixo sugere que a maioria dos problemas está sendo resolvida rapidamente e eficientemente no primeiro contato.\n", 255 | "\n", 256 | "```sql\n", 257 | "SELECT (COUNT(*) FILTER (WHERE escalado = TRUE) * 100.0 / COUNT(*)) AS percentual_escalados\n", 258 | "FROM tickets_suporte\n", 259 | "WHERE data BETWEEN '2024-04-01' AND '2024-04-30';\n", 260 | "```" 261 | ], 262 | "metadata": { 263 | "id": "3bw9bLPzhpjX" 264 | } 265 | }, 266 | { 267 | "cell_type": "markdown", 268 | "source": [ 269 | "# 📌 **Eficiência do Suporte**\n", 270 | "- A \"Eficiência do Suporte\" é uma métrica que avalia a capacidade da equipe de suporte ao cliente de resolver tickets dentro de um período de tempo específico, em comparação com o número total de tickets recebidos. Essa métrica fornece uma visão sobre quão rápido e eficazmente os problemas dos clientes estão sendo solucionados. Uma alta eficiência no suporte indica que a equipe está conseguindo gerenciar e resolver os tickets de maneira eficiente, maximizando a satisfação do cliente e minimizando atrasos. Essa avaliação é crucial para manter a qualidade do serviço de suporte e garantir que os clientes recebam assistência tempestiva e efetiva.\n", 271 | "\n", 272 | "```sql\n", 273 | "SELECT data, (COUNT(*) FILTER (WHERE resolvido = TRUE) * 100.0 / COUNT(*)) AS eficiencia_suporte\n", 274 | "FROM tickets_suporte\n", 275 | "GROUP BY data\n", 276 | "ORDER BY data;\n", 277 | "```" 278 | ], 279 | "metadata": { 280 | "id": "XZo_nq1gd9XI" 281 | } 282 | }, 283 | { 284 | "cell_type": "markdown", 285 | "source": [ 286 | "# 📌 **Média de Interações por Ticket**\n", 287 | "- A \"Média de Interações por Ticket\" é uma métrica que mede o número médio de interações — como mensagens, emails ou ligações — que ocorrem por ticket de suporte até que ele seja resolvido. Essa métrica ajuda a entender a complexidade e o esforço necessário para resolver os problemas dos clientes. Uma média alta de interações por ticket pode indicar que os problemas são complexos ou que o suporte inicial pode não estar efetivamente equipado para resolver questões rapidamente. Por outro lado, uma média baixa sugere que os tickets estão sendo resolvidos de forma eficiente, com menos trocas de comunicação, o que geralmente leva a uma melhor experiência do cliente.\n", 288 | "\n", 289 | "```sql\n", 290 | "SELECT AVG(numero_interacoes) AS media_interacoes\n", 291 | "FROM tickets_suporte\n", 292 | "WHERE data BETWEEN '2024-04-01' AND '2024-04-30';\n", 293 | "```" 294 | ], 295 | "metadata": { 296 | "id": "BgTet5uyeoHQ" 297 | } 298 | }, 299 | { 300 | "cell_type": "markdown", 301 | "source": [ 302 | "# 📌 **Tempo de Espera Médio**\n", 303 | "- O \"Tempo de Espera Médio\" é uma métrica que quantifica o tempo médio que os clientes esperam na fila antes de receberem suporte ou atendimento. Essa medida é fundamental para avaliar a eficiência do serviço de atendimento ao cliente, indicando quão rápido os clientes estão sendo atendidos após iniciarem uma solicitação de suporte. Um tempo de espera longo pode levar à insatisfação do cliente e afetar negativamente a percepção da qualidade do serviço, enquanto um tempo de espera curto geralmente reflete um atendimento ao cliente ágil e eficiente. Esta métrica é essencial para gerenciar a carga de trabalho de atendimento e otimizar os recursos para melhorar a experiência do cliente.\n", 304 | "\n", 305 | "```sql\n", 306 | "SELECT AVG(TIMESTAMPDIFF(MINUTE, created_at, first_contact_at)) AS tempo_espera_medio\n", 307 | "FROM tickets_suporte\n", 308 | "WHERE first_contact_at IS NOT NULL AND data BETWEEN '2024-04-01' AND '2024-04-30';\n", 309 | "```" 310 | ], 311 | "metadata": { 312 | "id": "WUsYVVP5e8jY" 313 | } 314 | } 315 | ] 316 | } -------------------------------------------------------------------------------- /10 - Pricing/queries_pricing.ipynb: -------------------------------------------------------------------------------- 1 | { 2 | "nbformat": 4, 3 | "nbformat_minor": 0, 4 | "metadata": { 5 | "colab": { 6 | "provenance": [] 7 | }, 8 | "kernelspec": { 9 | "name": "python3", 10 | "display_name": "Python 3" 11 | }, 12 | "language_info": { 13 | "name": "python" 14 | } 15 | }, 16 | "cells": [ 17 | { 18 | "cell_type": "markdown", 19 | "source": [ 20 | "# 📊 Repositório de Consultas SQL para Analistas de Dados: **Departamento de Pricing (Precificação)**\n", 21 | "O departamento de Pricing é responsável por definir estratégias de precificação para os produtos ou serviços de uma empresa, visando maximizar lucros, manter competitividade no mercado e atender às demandas dos clientes. Isso envolve análises de custos, concorrência, valor percebido pelo cliente e dinâmicas de mercado para estabelecer preços adequados. 📈💰\n", 22 | "\n", 23 | "***\n", 24 | "- 🔍 Contribuições: Estamos abertos a contribuições da comunidade de analistas de dados! Se você tiver consultas SQL úteis que gostaria de compartilhar ou sugestões para melhorias, sinta-se à vontade para enviar um pull request. Juntos, podemos expandir e aprimorar este repositório para beneficiar toda a comunidade de análise de dados.\n", 25 | "- 🎯 Sinta-se à vontade para explorar, utilizar e contribuir para este repositório, e que ele possa ser uma ferramenta valiosa em sua jornada como analista de dados!" 26 | ], 27 | "metadata": { 28 | "id": "vjqSg4TxgLfQ" 29 | } 30 | }, 31 | { 32 | "cell_type": "markdown", 33 | "source": [ 34 | "# 📌 **Margem de Lucro por Produto**\n", 35 | "🔍 A Margem de Lucro por Produto mede o valor que cada produto contribui para os lucros da empresa, após a cobertura dos seus custos diretos. Ela é expressa geralmente como um valor monetário ou uma porcentagem do preço de venda.\n", 36 | "\n", 37 | "Por exemplo, se um produto é vendido por `R$100` e custa `R$60` para ser produzido, a margem de lucro é `R$40` ou 40% do preço de venda. Essa margem é crucial para entender quais produtos oferecem o maior retorno sobre o investimento e ajudar na formulação de estratégias de precificação e produção.\n", 38 | "\n", 39 | "```sql\n", 40 | "SELECT produto_id,\n", 41 | " nome_produto,\n", 42 | " EXTRACT(YEAR FROM data_venda) AS ano,\n", 43 | " EXTRACT(MONTH FROM data_venda) AS mes,\n", 44 | " (preco_venda - custo_produto) AS margem_lucro,\n", 45 | " ((preco_venda - custo_produto) / preco_venda) * 100 AS percentual_margem\n", 46 | "FROM produtos\n", 47 | "JOIN vendas ON produtos.produto_id = vendas.produto_id\n", 48 | "GROUP BY produto_id, nome_produto, EXTRACT(YEAR FROM data_venda), EXTRACT(MONTH FROM data_venda)\n", 49 | "ORDER BY produto_id, ano, mes;\n", 50 | "```" 51 | ], 52 | "metadata": { 53 | "id": "_ZYNjMo9Mxtt" 54 | } 55 | }, 56 | { 57 | "cell_type": "markdown", 58 | "source": [ 59 | "# 📌 **Elasticidade de Preço da Demanda**\n", 60 | "🔍 A **Elasticidade de Preço da Demanda** é uma métrica econômica que quantifica a reação dos consumidores a alterações no preço de um bem ou serviço. A elasticidade é calculada como a razão percentual da mudança na quantidade demandada pela mudança percentual no preço.\n", 61 | "\n", 62 | "Por exemplo, se o preço de um produto aumenta em 10% e a demanda por esse produto diminui em 20%, a elasticidade de preço da demanda é -2.0. Este valor negativo reflete a relação inversa entre preço e demanda.\n", 63 | "\n", 64 | "- **Elasticidade maior que 1 (elástica):** A demanda varia mais do que proporcionalmente em relação ao preço. Uma pequena mudança no preço leva a uma grande mudança na quantidade demandada.\n", 65 | "- **Elasticidade menor que 1 (inelástica):** A demanda varia menos do que proporcionalmente em relação ao preço. As mudanças no preço têm um impacto pequeno sobre a quantidade demandada.\n", 66 | "- **Elasticidade igual a 1 (unitária):** A demanda varia proporcionalmente ao preço.\n", 67 | "\n", 68 | "Compreender a elasticidade ajuda empresas a definir estratégias de precificação, maximizar receitas ou volumes de vendas, e entender melhor o comportamento do consumidor em diferentes segmentos de mercado.\n", 69 | "\n", 70 | "```sql\n", 71 | "SELECT a.produto_id,\n", 72 | " a.nome_produto,\n", 73 | " EXTRACT(YEAR FROM b.data_venda) AS ano,\n", 74 | " EXTRACT(MONTH FROM b.data_venda) AS mes,\n", 75 | " (SUM(b.qtd_vendida) / AVG(a.preco_venda)) AS elasticidade_preco\n", 76 | "FROM produtos a\n", 77 | "JOIN vendas b ON a.produto_id = b.produto_id\n", 78 | "GROUP BY a.produto_id, a.nome_produto, EXTRACT(YEAR FROM b.data_venda), EXTRACT(MONTH FROM b.data_venda)\n", 79 | "ORDER BY a.produto_id, ano, mes;\n", 80 | "```" 81 | ], 82 | "metadata": { 83 | "id": "4u7xo5BNM0im" 84 | } 85 | }, 86 | { 87 | "cell_type": "markdown", 88 | "source": [ 89 | "# 📌 **Índice de Competitividade de Preço**\n", 90 | "🔍 **Índice de Competitividade de Preço** é uma métrica usada para comparar os preços de produtos ou serviços de uma empresa com seus concorrentes diretos. Este índice ajuda a entender como os preços praticados estão posicionados no mercado, permitindo às empresas ajustar sua estratégia de precificação para melhorar a competitividade.\n", 91 | "\n", 92 | "### Importância do Índice de Competitividade de Preço:\n", 93 | "- **Posicionamento de Mercado:** Fornece insights sobre como os preços da empresa são percebidos em relação aos concorrentes.\n", 94 | "- **Decisões Estratégicas:** Ajuda a definir se a empresa deve ajustar os preços para ser mais competitiva, aumentar margens ou capturar maior participação de mercado.\n", 95 | "- **Atração e Retenção de Clientes:** Preços competitivos podem atrair novos clientes e reter os existentes, especialmente em mercados sensíveis ao preço.\n", 96 | "\n", 97 | "### Exemplo de Query SQL para Índice de Competitividade de Preço:\n", 98 | "Para construir uma query SQL que calcule o Índice de Competitividade de Preço, você precisará de acesso a dados dos preços dos concorrentes. Aqui está um exemplo básico, assumindo que você tem uma tabela `precos_concorrentes` que contém os preços dos produtos dos concorrentes e uma tabela `produtos` para os preços da sua empresa.\n", 99 | "\n", 100 | "```sql\n", 101 | "SELECT\n", 102 | " p.produto_id,\n", 103 | " p.nome_produto,\n", 104 | " p.preco AS preco_empresa,\n", 105 | " AVG(c.preco) AS preco_medio_concorrentes,\n", 106 | " (p.preco / AVG(c.preco)) * 100 AS indice_competitividade_preco\n", 107 | "FROM produtos p\n", 108 | "JOIN precos_concorrentes c ON p.produto_id = c.produto_id\n", 109 | "GROUP BY p.produto_id, p.nome_produto, p.preco\n", 110 | "ORDER BY p.produto_id;\n", 111 | "```\n", 112 | "\n", 113 | "### Explicação da Query:\n", 114 | "- **p.preco AS preco_empresa**: Preço atual do produto pela sua empresa.\n", 115 | "- **AVG(c.preco) AS preco_medio_concorrentes**: Calcula o preço médio do mesmo produto oferecido pelos concorrentes.\n", 116 | "- **(p.preco / AVG(c.preco)) * 100 AS indice_competitividade_preco**: Calcula o índice de competitividade de preço, mostrando como o preço do produto se compara ao preço médio dos concorrentes, em porcentagem. Valores acima de 100 indicam que o produto é vendido a um preço superior ao dos concorrentes, enquanto valores abaixo de 100 indicam um preço inferior.\n", 117 | "\n", 118 | "Este índice permite uma análise direta e eficaz da posição competitiva em termos de precificação, essencial para ajustes estratégicos no mercado." 119 | ], 120 | "metadata": { 121 | "id": "Dp2oR1UXUn7E" 122 | } 123 | }, 124 | { 125 | "cell_type": "markdown", 126 | "source": [ 127 | "# 📌 **Lucratividade por Pedido**\n", 128 | "\n", 129 | "🔍 **Lucratividade por Pedido** é um KPI que mede o lucro gerado por cada pedido realizado. Essa métrica calcula a diferença entre a receita obtida de um pedido e todos os custos associados a esse pedido, incluindo custos de produtos, operacionais, e de entrega, se aplicável. É essencial para avaliar a eficiência e a rentabilidade das operações de venda.\n", 130 | "\n", 131 | "### Importância da Lucratividade por Pedido:\n", 132 | "- **Avaliação de Rentabilidade:** Ajuda a entender quão rentáveis são os pedidos individualmente, o que pode influenciar decisões sobre estratégias de precificação e promoções.\n", 133 | "- **Otimização de Custos:** Permite identificar onde os custos podem ser reduzidos para aumentar a margem de lucro por pedido.\n", 134 | "- **Análise de Desempenho:** Facilita a comparação entre diferentes produtos, categorias ou campanhas promocionais em termos de contribuição para a lucratividade.\n", 135 | "\n", 136 | "### Exemplo de Query SQL para Lucratividade por Pedido:\n", 137 | "Suponha que você tenha tabelas de `pedidos`, `itens_pedido`, e `produtos`, onde `pedidos` contém informações sobre cada pedido, `itens_pedido` lista os produtos em cada pedido e seus custos, e `produtos` tem detalhes de custo de produção ou aquisição. Aqui está um exemplo de como calcular a lucratividade por pedido:\n", 138 | "\n", 139 | "```sql\n", 140 | "SELECT\n", 141 | " p.pedido_id,\n", 142 | " SUM(i.preco_venda * i.quantidade) AS receita_total,\n", 143 | " SUM(i.custo_produto * i.quantidade) AS custo_total,\n", 144 | " (SUM(i.preco_venda * i.quantidade) - SUM(i.custo_produto * i.quantidade)) AS lucro_por_pedido\n", 145 | "FROM pedidos p\n", 146 | "JOIN itens_pedido i ON p.pedido_id = i.pedido_id\n", 147 | "GROUP BY p.pedido_id\n", 148 | "ORDER BY p.pedido_id;\n", 149 | "```\n", 150 | "\n", 151 | "### Explicação da Query:\n", 152 | "- **p.pedido_id**: Identificador único para cada pedido.\n", 153 | "- **SUM(i.preco_venda * i.quantidade) AS receita_total**: Calcula a receita total do pedido, multiplicando o preço de venda de cada item pela quantidade vendida e somando todos os itens do pedido.\n", 154 | "- **SUM(i.custo_produto * i.quantidade) AS custo_total**: Calcula o custo total dos produtos no pedido, multiplicando o custo de cada item pela quantidade e somando.\n", 155 | "- **(SUM(i.preco_venda * i.quantidade) - SUM(i.custo_produto * i.quantidade)) AS lucro_por_pedido**: Subtrai o custo total da receita total para determinar o lucro gerado por cada pedido.\n", 156 | "\n", 157 | "Este cálculo oferece uma visão clara da lucratividade de cada pedido, ajudando a identificar quais pedidos são mais rentáveis e onde podem estar os pontos de ineficiência no processo de vendas." 158 | ], 159 | "metadata": { 160 | "id": "9h3XijaHW3e9" 161 | } 162 | }, 163 | { 164 | "cell_type": "markdown", 165 | "source": [ 166 | "# 📌 **Efeito de Cross-Selling e Up-Selling**\n", 167 | "🔍 **Efeito de Cross-Selling e Up-Selling** são estratégias de vendas que visam aumentar o valor médio das compras dos clientes por meio da oferta de produtos complementares ou de versões superiores de um produto.\n", 168 | "\n", 169 | "### Cross-Selling:\n", 170 | "- **O que é?** A técnica de vender produtos relacionados ou complementares ao item original que o cliente está comprando. Por exemplo, vender batatas fritas e refrigerante para um cliente que está comprando um hambúrguer.\n", 171 | "\n", 172 | "### Up-Selling:\n", 173 | "- **O que é?** Consiste em incentivar os clientes a comprar uma versão mais cara ou avançada de um produto que eles estão considerando. Por exemplo, oferecer um smartphone com mais memória e recursos por um preço ligeiramente superior.\n", 174 | "\n", 175 | "### Importância dessas Estratégias:\n", 176 | "- **Aumento da Receita:** Ambas as estratégias ajudam a aumentar a receita total por cliente, maximizando o valor de cada transação.\n", 177 | "- **Melhoria da Experiência do Cliente:** Quando feito corretamente, cross-selling e up-selling podem melhorar a experiência de compra, oferecendo ao cliente opções que realmente atendem às suas necessidades.\n", 178 | "- **Eficiência de Inventário:** Ajudam a mover mais produtos, incluindo itens que podem não ser frequentemente vendidos por conta própria.\n", 179 | "\n", 180 | "### Exemplo de Query SQL para Análise de Efeito de Cross-Selling e Up-Selling:\n", 181 | "Para analisar o impacto dessas estratégias, você pode calcular o aumento no valor médio do pedido antes e depois da implementação de táticas de cross-selling e up-selling. Aqui está um exemplo de query que poderia ser usada:\n", 182 | "\n", 183 | "```sql\n", 184 | "SELECT\n", 185 | " c.categoria,\n", 186 | " pr.produto_id,\n", 187 | " pr.nome_produto,\n", 188 | " AVG(p.preco) AS preco_medio_antes,\n", 189 | " AVG(p.preco * 1.1) AS preco_medio_depois, -- Supondo um aumento de 10% no valor de itens por up-selling\n", 190 | " COUNT(DISTINCT p.pedido_id) AS num_pedidos,\n", 191 | " SUM(p.preco) AS receita_total_antes,\n", 192 | " SUM(p.preco * 1.1) AS receita_total_depois -- Supondo um aumento de 10% no valor por up-selling\n", 193 | "FROM pedidos p\n", 194 | "JOIN produtos pr ON p.produto_id = pr.produto_id\n", 195 | "JOIN categorias c ON pr.categoria_id = c.categoria_id\n", 196 | "WHERE p.data BETWEEN '2023-01-01' AND '2023-12-31'\n", 197 | "GROUP BY c.categoria, pr.produto_id, pr.nome_produto\n", 198 | "ORDER BY c.categoria, pr.produto_id;\n", 199 | "```\n", 200 | "\n", 201 | "### Explicação da Query:\n", 202 | "- **c.categoria**: Agrupa os dados por categoria de produto para análise de cross-selling e up-selling.\n", 203 | "- **pr.produto_id** e **pr.nome_produto**: Esses campos são incluídos para detalhar quais produtos específicos estão gerando mais receita através das estratégias de up-selling e cross-selling.\n", 204 | "- **AVG(p.preco)**: Calcula o preço médio antes da implementação das estratégias.\n", 205 | "- **AVG(p.preco * 1.1)**: Estima o preço médio após um aumento de 10% atribuído ao up-selling.\n", 206 | "- **SUM(p.preco)** e **SUM(p.preco * 1.1)**: Calcula a receita total antes e depois, assumindo um aumento de 10% no valor de cada item vendido devido ao up-selling.\n", 207 | "\n", 208 | "Esta análise ajudará a entender o impacto financeiro dessas estratégias de vendas, permitindo avaliar sua eficácia em termos de aumento de receita e melhoria da experiência do cliente." 209 | ], 210 | "metadata": { 211 | "id": "mIDC626FYVu0" 212 | } 213 | }, 214 | { 215 | "cell_type": "markdown", 216 | "source": [ 217 | "# 📌 **Preço Médio de Venda (ASP - Average Selling Price)**\n", 218 | "🔍 O **Preço Médio de Venda (ASP - Average Selling Price)** é uma métrica que calcula o valor médio pelo qual um produto é vendido em um determinado período. Esse valor é obtido dividindo-se a receita total pelas unidades vendidas. É uma métrica crucial para negócios pois fornece insights sobre a performance de vendas e estratégias de precificação.\n", 219 | "\n", 220 | "### Por que o ASP é importante?\n", 221 | "\n", 222 | "1. **Avaliação de Estratégias de Precificação:** Ajuda a entender se as mudanças nos preços estão afetando positivamente as receitas. Um ASP crescente pode indicar uma aceitação de preços mais altos pelo mercado ou uma mudança bem-sucedida para produtos de maior valor.\n", 223 | "\n", 224 | "2. **Benchmarking de Desempenho:** Comparar o ASP com períodos anteriores ou com concorrentes pode indicar se a empresa está ganhando vantagem competitiva ou perdendo terreno.\n", 225 | "\n", 226 | "3. **Planejamento Financeiro:** O ASP fornece dados para prever receitas futuras e ajuda a definir metas de vendas mais realistas.\n", 227 | "\n", 228 | "4. **Otimização do Mix de Produtos:** Analisando o ASP por linha de produto, a empresa pode identificar quais produtos ou serviços contribuem mais para aumentar o ASP geral e ajustar o foco em vendas e marketing.\n", 229 | "\n", 230 | "Este cálculo simples, mas poderoso, fornece uma visão clara sobre o desempenho de vendas e é frequentemente usado para monitorar tendências ao longo do tempo, ajustar estratégias e melhorar resultados financeiros.\n", 231 | "\n", 232 | "```sql\n", 233 | "SELECT\n", 234 | " EXTRACT(YEAR FROM data_venda) AS ano,\n", 235 | " EXTRACT(MONTH FROM data_venda) AS mes,\n", 236 | " SUM(preco_venda * quantidade) AS receita_total,\n", 237 | " SUM(quantidade) AS unidades_vendidas,\n", 238 | " (SUM(preco_venda * quantidade) / SUM(quantidade)) AS ASP\n", 239 | "FROM vendas\n", 240 | "GROUP BY ano, mes\n", 241 | "ORDER BY ano, mes;\n", 242 | "```" 243 | ], 244 | "metadata": { 245 | "id": "rIKPzHWQM1Ht" 246 | } 247 | } 248 | ] 249 | } -------------------------------------------------------------------------------- /12 - ESG/1 - Environmental (Meio Ambiente)/queries_environmental.ipynb: -------------------------------------------------------------------------------- 1 | { 2 | "nbformat": 4, 3 | "nbformat_minor": 0, 4 | "metadata": { 5 | "colab": { 6 | "provenance": [] 7 | }, 8 | "kernelspec": { 9 | "name": "python3", 10 | "display_name": "Python 3" 11 | }, 12 | "language_info": { 13 | "name": "python" 14 | } 15 | }, 16 | "cells": [ 17 | { 18 | "cell_type": "markdown", 19 | "source": [ 20 | "# 📊 Repositório de Consultas SQL para Analistas de Dados: **Departamento ESG - Environmental (Meio Ambiente)**\n", 21 | "\n", 22 | "ESG é um **conjunto de padrões e boas práticas que visa definir se uma empresa é socialmente consciente, sustentável e corretamente gerenciada**. Trata-se de uma forma de medir o desempenho de sustentabilidade de uma organização. A sigla, em inglês, reúne os três pilares desse movimento:\n", 23 | "-\tEnvironmental (meio ambiente)\n", 24 | "-\tSocial\n", 25 | "-\tGovernance (governança)\n", 26 | "\n", 27 | "O critério ambiental inclui exigências nesse campo, como:\n", 28 | "- a gestão de resíduos;\n", 29 | "- a política de desmatamento (caso aplicável);\n", 30 | "- o uso de fontes de energia renováveis pela empresa;\n", 31 | "\n", 32 | "Além disso, o critério ambiental pode também se estender ao controle exercido pela empresa em terras que possui, se há ações para melhorar e preservar a biodiversidade, por exemplo.\n", 33 | "\n", 34 | "Comentários sobre o Projeto:\n", 35 | "- 🔍 Contribuições: Estamos abertos a contribuições da comunidade de analistas de dados! Se você tiver consultas SQL úteis que gostaria de compartilhar ou sugestões para melhorias, sinta-se à vontade para enviar um pull request. Juntos, podemos expandir e aprimorar este repositório para beneficiar toda a comunidade de análise de dados.\n", 36 | "- 🎯 Sinta-se à vontade para explorar, utilizar e contribuir para este repositório, e que ele possa ser uma ferramenta valiosa em sua jornada como analista de dados!" 37 | ], 38 | "metadata": { 39 | "id": "vjqSg4TxgLfQ" 40 | } 41 | }, 42 | { 43 | "cell_type": "markdown", 44 | "source": [ 45 | "# 📌 **Emissões de Gases de Efeito Estufa (GEE)**\n", 46 | "\n", 47 | "**Descrição**:\n", 48 | "Este KPI mede as emissões de gases de efeito estufa (GEE), expressas em toneladas de CO2 equivalente, provenientes das operações da empresa, especificamente do transporte de pedidos. A métrica considera os diferentes modos de transporte utilizados (carro, moto, caminhão) e calcula o total de emissões associadas às entregas.\n", 49 | "\n", 50 | "**Importância para o departamento ESG e para a empresa**:\n", 51 | "- **🌍 Sustentabilidade Ambiental**: Monitorar e reduzir as emissões de GEE é crucial para minimizar o impacto ambiental das operações da empresa.\n", 52 | "- **📈 Conformidade Regulamentar**: Muitas jurisdições têm regulamentações rigorosas sobre emissões de GEE. Manter esses níveis baixos ajuda a empresa a permanecer em conformidade e evitar multas.\n", 53 | "- **🛡️ Reputação e Marca**: Consumidores e investidores estão cada vez mais preocupados com as práticas ambientais das empresas. Demonstrar um compromisso com a redução das emissões pode melhorar a imagem da marca e atrair clientes e investidores.\n", 54 | "- **💰 Eficiência Operacional**: Reduzir as emissões muitas vezes está associado a melhorias na eficiência operacional, como otimização de rotas e uso de veículos mais eficientes, resultando em economia de custos.\n", 55 | "\n", 56 | "### Query SQL para KPI\n", 57 | "\n", 58 | "Vamos assumir que temos uma tabela `pedidos` com as seguintes colunas relevantes:\n", 59 | "- `id`: ID do pedido\n", 60 | "- `modal`: Modal de transporte (carro, moto, caminhão)\n", 61 | "- `distancia_km`: Distância percorrida pelo modal em quilômetros\n", 62 | "\n", 63 | "Para calcular as emissões de CO2, utilizamos fatores de emissão específicos para cada modal:\n", 64 | "- Carro: 0.12 kg CO2 por km\n", 65 | "- Moto: 0.09 kg CO2 por km\n", 66 | "- Caminhão: 0.25 kg CO2 por km\n", 67 | "\n", 68 | "Esses fatores de emissão são exemplos genéricos que podem ser usados para ilustrar o cálculo de emissões de CO2 com base em diferentes modais de transporte. No entanto, os valores reais podem variar dependendo de várias fontes e condições específicas. Esses valores são frequentemente utilizados em estudos e relatórios ambientais, mas é essencial utilizar dados específicos para a frota e condições operacionais da empresa. Recomendo consultar fontes como o IPCC (Intergovernmental Panel on Climate Change), a Agência Ambiental Europeia (EEA), ou bases de dados nacionais sobre emissões para obter fatores de emissão específicos e atualizados.\n", 69 | "\n", 70 | "Aqui está a query SQL para calcular as emissões de CO2. Esta query primeiro calcula as emissões de CO2 em quilogramas para cada pedido, dependendo do modal de transporte, e depois soma todas as emissões, convertendo o total para toneladas de CO2 equivalente.:\n", 71 | "\n", 72 | "```sql\n", 73 | "WITH emissoes_por_pedido AS (\n", 74 | " SELECT\n", 75 | " id,\n", 76 | " modal,\n", 77 | " distancia_km,\n", 78 | " date_trunc('month', data_pedido) AS mes,\n", 79 | " CASE\n", 80 | " WHEN modal = 'carro' THEN distancia_km * 0.12 --- Fator de emissão para carro (kg CO2 por km)\n", 81 | " WHEN modal = 'moto' THEN distancia_km * 0.09 -- Fator de emissão para moto (kg CO2 por km)\n", 82 | " WHEN modal = 'caminhao' THEN distancia_km * 0.25 -- Fator de emissão para caminhão (kg CO2 por km)\n", 83 | " END AS emissao_co2_kg -- Emissões em kg\n", 84 | " FROM\n", 85 | " pedidos\n", 86 | "),\n", 87 | "emissoes_mensais AS (\n", 88 | " SELECT\n", 89 | " mes,\n", 90 | " SUM(emissao_co2_kg) / 1000 AS total_emissao_co2_ton -- Somando as emissões de CO2 calculadas para cada pedido e convertendo a unidade de quilogramas para toneladas\n", 91 | " FROM\n", 92 | " emissoes_por_pedido\n", 93 | " GROUP BY\n", 94 | " mes\n", 95 | "),\n", 96 | "emissoes_completas AS (\n", 97 | " SELECT\n", 98 | " mes,\n", 99 | " total_emissao_co2_ton,\n", 100 | " LAG(total_emissao_co2_ton) OVER (ORDER BY mes) AS emissao_mes_anterior,\n", 101 | " LAG(total_emissao_co2_ton, 12) OVER (ORDER BY mes) AS emissao_mes_ano_anterior\n", 102 | " FROM\n", 103 | " emissoes_mensais\n", 104 | ")\n", 105 | "SELECT\n", 106 | " mes,\n", 107 | " total_emissao_co2_ton,\n", 108 | " COALESCE(100 * (total_emissao_co2_ton - emissao_mes_anterior) / emissao_mes_anterior, 0) AS pct_mes_anterior,\n", 109 | " COALESCE(100 * (total_emissao_co2_ton - emissao_mes_ano_anterior) / emissao_mes_ano_anterior, 0) AS pct_mes_ano_anterior,\n", 110 | " COALESCE(emissao_mes_anterior, 0) * 0.9 AS meta,\n", 111 | " COALESCE(100 * total_emissao_co2_ton / (COALESCE(emissao_mes_anterior, 1) * 0.9), 0) AS pct_meta_batida\n", 112 | "FROM\n", 113 | " emissoes_completas\n", 114 | "ORDER BY\n", 115 | " mes;\n", 116 | "\n", 117 | "```\n", 118 | "\n", 119 | "### Explicação da Query\n", 120 | "\n", 121 | "1. **CTE `emissoes_por_pedido`**:\n", 122 | " - **Objetivo**: Calcular as emissões de CO2 em quilogramas para cada pedido com base no modal de transporte e a distância percorrida.\n", 123 | " - **Colunas**:\n", 124 | " - `id`: ID do pedido.\n", 125 | " - `modal`: Modal de transporte (carro, moto, caminhão).\n", 126 | " - `distancia_km`: Distância percorrida pelo modal.\n", 127 | " - `mes`: Mês do pedido (truncado para o início do mês).\n", 128 | " - `emissao_co2_kg`: Emissões de CO2 em quilogramas calculadas com base no modal.\n", 129 | "\n", 130 | "2. **CTE `emissoes_mensais`**:\n", 131 | " - **Objetivo**: Agregar as emissões de CO2 por mês e converter de quilogramas para toneladas.\n", 132 | " - **Colunas**:\n", 133 | " - `mes`: Mês.\n", 134 | " - `total_emissao_co2_ton`: Emissões totais de CO2 em toneladas para cada mês.\n", 135 | "\n", 136 | "3. **CTE `emissoes_completas`**:\n", 137 | " - **Objetivo**: Calcular as emissões do mês anterior e do mesmo mês do ano anterior.\n", 138 | " - **Colunas**:\n", 139 | " - `mes`: Mês.\n", 140 | " - `total_emissao_co2_ton`: Emissões totais de CO2 em toneladas para cada mês.\n", 141 | " - `emissao_mes_anterior`: Emissões totais de CO2 em toneladas do mês anterior.\n", 142 | " - `emissao_mes_ano_anterior`: Emissões totais de CO2 em toneladas do mesmo mês no ano anterior.\n", 143 | "\n", 144 | "4. **Seleção Final**:\n", 145 | " - **Objetivo**: Calcular os percentuais de emissão de CO2, meta de redução, e meta atingida.\n", 146 | " - **Colunas**:\n", 147 | " - `mes`: Mês.\n", 148 | " - `total_emissao_co2_ton`: Emissões totais de CO2 em toneladas para cada mês.\n", 149 | " - `pct_mes_anterior`: Percentual de crescimento ou queda em relação ao mês anterior.\n", 150 | " - `pct_mes_ano_anterior`: Percentual de crescimento ou queda em relação ao mesmo mês do ano anterior.\n", 151 | " - `meta`: Meta de emissões (90% da emissão do mês anterior).\n", 152 | " - `pct_meta_batida`: Percentual de meta atingida.\n", 153 | "\n", 154 | "\n", 155 | "Essa query fornece uma visão clara das emissões de GEE ao longo do tempo, permitindo que a empresa monitore tendências e implemente estratégias para reduzir suas emissões de forma contínua.\n" 156 | ], 157 | "metadata": { 158 | "id": "bsV_VOeip4Vu" 159 | } 160 | }, 161 | { 162 | "cell_type": "markdown", 163 | "source": [ 164 | "# 📌 **Consumo de Energia: Quilowatts-hora (kWh) utilizados**\n", 165 | "\n", 166 | "**Descrição**:\n", 167 | "Este KPI mede o total de quilowatts-hora (kWh) utilizados pela empresa em um determinado período. Ele reflete o consumo de energia elétrica das operações da empresa, que é um indicador importante de eficiência energética e sustentabilidade ambiental.\n", 168 | "\n", 169 | "**Importância para o departamento ESG e para a empresa**:\n", 170 | "- **💡 Eficiência Energética**: Monitorar o consumo de energia ajuda a identificar áreas onde a eficiência pode ser melhorada, resultando em economia de custos.\n", 171 | "- **🌱 Sustentabilidade Ambiental**: Reduzir o consumo de energia contribui para a redução da pegada de carbono da empresa, promovendo práticas mais sustentáveis.\n", 172 | "- **📉 Conformidade Regulamentar**: Atender às normas de consumo energético e reduzir o uso de recursos naturais é crucial para a conformidade regulatória.\n", 173 | "- **🏢 Reputação e Marca**: Empresas que demonstram responsabilidade ambiental através da gestão eficiente do consumo de energia são vistas de forma mais positiva por consumidores e investidores.\n", 174 | "\n", 175 | "### Query SQL\n", 176 | "\n", 177 | "Vamos assumir que temos uma tabela `consumo_energia` com os seguintes campos:\n", 178 | "- `id`: ID do registro de consumo\n", 179 | "- `data_consumo`: Data do consumo de energia\n", 180 | "- `kwh_utilizados`: Quantidade de quilowatts-hora (kWh) consumidos\n", 181 | "\n", 182 | "Aqui está a query SQL para calcular o consumo de energia:\n", 183 | "\n", 184 | "```sql\n", 185 | "WITH consumo_mensal AS (\n", 186 | " SELECT\n", 187 | " date_trunc('month', data_consumo) AS mes,\n", 188 | " SUM(kwh_utilizados) AS total_kwh_mensal\n", 189 | " FROM\n", 190 | " consumo_energia\n", 191 | " GROUP BY\n", 192 | " date_trunc('month', data_consumo)\n", 193 | "),\n", 194 | "consumo_anual AS (\n", 195 | " SELECT\n", 196 | " date_trunc('year', data_consumo) AS ano,\n", 197 | " SUM(kwh_utilizados) AS total_kwh_anual\n", 198 | " FROM\n", 199 | " consumo_energia\n", 200 | " GROUP BY\n", 201 | " date_trunc('year', data_consumo)\n", 202 | ")\n", 203 | "SELECT\n", 204 | " c.mes,\n", 205 | " c.total_kwh_mensal,\n", 206 | " a.total_kwh_anual\n", 207 | "FROM\n", 208 | " consumo_mensal c\n", 209 | " JOIN consumo_anual a ON date_trunc('year', c.mes) = a.ano\n", 210 | "ORDER BY\n", 211 | " c.mes;\n", 212 | "```\n", 213 | "\n", 214 | "### Explicação da Query\n", 215 | "\n", 216 | "1. **CTE `consumo_mensal`**:\n", 217 | " - Agrupa o consumo de energia por mês e calcula o total de kWh consumidos mensalmente.\n", 218 | "\n", 219 | "2. **CTE `consumo_anual`**:\n", 220 | " - Agrupa o consumo de energia por ano e calcula o total de kWh consumidos anualmente.\n", 221 | "\n", 222 | "3. **Seleção Final**:\n", 223 | " - Junta os totais mensais e anuais do consumo de energia, permitindo a comparação e análise dos valores ao longo do tempo.\n", 224 | "\n" 225 | ], 226 | "metadata": { 227 | "id": "Q9t4_HATc4sH" 228 | } 229 | }, 230 | { 231 | "cell_type": "markdown", 232 | "source": [ 233 | "# 📌 **Consumo de Água: Metros cúbicos (m³) de água consumidos**\n", 234 | "\n", 235 | "**Descrição**:\n", 236 | "Este KPI mede o total de metros cúbicos (m³) de água consumidos pela empresa em um determinado período. Ele reflete o uso de água nas operações da empresa, que é um indicador importante de eficiência hídrica e sustentabilidade ambiental.\n", 237 | "\n", 238 | "**Importância para o departamento ESG e para a empresa**:\n", 239 | "- **🌍 Sustentabilidade Ambiental**: Monitorar e reduzir o consumo de água contribui para a conservação dos recursos hídricos e minimiza o impacto ambiental.\n", 240 | "- **💧 Eficiência Hídrica**: Identificar áreas onde a eficiência no uso da água pode ser melhorada resulta em economia de custos e recursos.\n", 241 | "- **📉 Conformidade Regulamentar**: Atender às normas de consumo hídrico e reduzir o uso de recursos naturais é crucial para a conformidade regulatória.\n", 242 | "- **🏢 Reputação e Marca**: Empresas que demonstram responsabilidade ambiental através da gestão eficiente do consumo de água são vistas de forma mais positiva por consumidores e investidores.\n", 243 | "\n", 244 | "### Query SQL\n", 245 | "\n", 246 | "Vamos assumir que temos uma tabela `consumo_agua` com os seguintes campos:\n", 247 | "- `id`: ID do registro de consumo\n", 248 | "- `data_consumo`: Data do consumo de água\n", 249 | "- `m3_utilizados`: Quantidade de metros cúbicos (m³) de água consumidos\n", 250 | "\n", 251 | "Aqui está a query SQL para calcular o consumo de água:\n", 252 | "\n", 253 | "```sql\n", 254 | "WITH consumo_mensal AS (\n", 255 | " SELECT\n", 256 | " date_trunc('month', data_consumo) AS mes,\n", 257 | " SUM(m3_utilizados) AS total_m3_mensal\n", 258 | " FROM\n", 259 | " consumo_agua\n", 260 | " GROUP BY\n", 261 | " date_trunc('month', data_consumo)\n", 262 | "),\n", 263 | "consumo_anual AS (\n", 264 | " SELECT\n", 265 | " date_trunc('year', data_consumo) AS ano,\n", 266 | " SUM(m3_utilizados) AS total_m3_anual\n", 267 | " FROM\n", 268 | " consumo_agua\n", 269 | " GROUP BY\n", 270 | " date_trunc('year', data_consumo)\n", 271 | ")\n", 272 | "SELECT\n", 273 | " c.mes,\n", 274 | " c.total_m3_mensal,\n", 275 | " a.total_m3_anual\n", 276 | "FROM\n", 277 | " consumo_mensal c\n", 278 | " JOIN consumo_anual a ON date_trunc('year', c.mes) = a.ano\n", 279 | "ORDER BY\n", 280 | " c.mes;\n", 281 | "```\n", 282 | "\n", 283 | "### Explicação da Query\n", 284 | "\n", 285 | "1. **CTE `consumo_mensal`**:\n", 286 | " - Agrupa o consumo de água por mês e calcula o total de m³ consumidos mensalmente.\n", 287 | "\n", 288 | "2. **CTE `consumo_anual`**:\n", 289 | " - Agrupa o consumo de água por ano e calcula o total de m³ consumidos anualmente.\n", 290 | "\n", 291 | "3. **Seleção Final**:\n", 292 | " - Junta os totais mensais e anuais do consumo de água, permitindo a comparação e análise dos valores ao longo do tempo." 293 | ], 294 | "metadata": { 295 | "id": "WVnFoyaBc4BH" 296 | } 297 | }, 298 | { 299 | "cell_type": "markdown", 300 | "source": [ 301 | "# 📌 **Gestão de Resíduos: Toneladas de resíduos gerados e reciclados**\n", 302 | "\n", 303 | "**Descrição**:\n", 304 | "Este KPI mede a quantidade total de resíduos gerados e reciclados pela empresa em um determinado período, em toneladas. Ele reflete a eficácia das práticas de gestão de resíduos e sustentabilidade ambiental da empresa.\n", 305 | "\n", 306 | "**Importância para o departamento ESG e para a empresa**:\n", 307 | "- **🌍 Sustentabilidade Ambiental**: Monitorar e reduzir a quantidade de resíduos gerados e aumentar a quantidade reciclada contribui para a preservação ambiental.\n", 308 | "- **♻️ Economia Circular**: Implementar práticas de reciclagem promove a economia circular, reduzindo a necessidade de novos recursos.\n", 309 | "- **📉 Conformidade Regulamentar**: Atender às normas de gestão de resíduos e práticas de reciclagem é crucial para a conformidade regulatória.\n", 310 | "- **🏢 Reputação e Marca**: Empresas que demonstram responsabilidade ambiental através da gestão eficiente de resíduos são vistas de forma mais positiva por consumidores e investidores.\n", 311 | "\n", 312 | "### Query SQL\n", 313 | "\n", 314 | "Vamos assumir que temos uma tabela `gestao_residuos` com os seguintes campos:\n", 315 | "- `id`: ID do registro de resíduos\n", 316 | "- `data_registro`: Data do registro de resíduos\n", 317 | "- `tipo_residuo`: Tipo de resíduo (gerado ou reciclado)\n", 318 | "- `toneladas`: Quantidade de resíduos em toneladas\n", 319 | "\n", 320 | "Para calcular a quantidade total de resíduos gerados e reciclados, agregamos os resíduos por tipo, mês e ano.\n", 321 | "\n", 322 | "Aqui está a query SQL para calcular a gestão de resíduos:\n", 323 | "\n", 324 | "```sql\n", 325 | "WITH residuos_mensais AS (\n", 326 | " SELECT\n", 327 | " date_trunc('month', data_registro) AS mes,\n", 328 | " tipo_residuo,\n", 329 | " SUM(toneladas) AS total_toneladas_mensal\n", 330 | " FROM\n", 331 | " gestao_residuos\n", 332 | " GROUP BY\n", 333 | " date_trunc('month', data_registro), tipo_residuo\n", 334 | "),\n", 335 | "residuos_anuais AS (\n", 336 | " SELECT\n", 337 | " date_trunc('year', data_registro) AS ano,\n", 338 | " tipo_residuo,\n", 339 | " SUM(toneladas) AS total_toneladas_anual\n", 340 | " FROM\n", 341 | " gestao_residuos\n", 342 | " GROUP BY\n", 343 | " date_trunc('year', data_registro), tipo_residuo\n", 344 | "),\n", 345 | "residuos_completos AS (\n", 346 | " SELECT\n", 347 | " r.mes,\n", 348 | " r.tipo_residuo,\n", 349 | " r.total_toneladas_mensal,\n", 350 | " a.total_toneladas_anual,\n", 351 | " COALESCE(\n", 352 | " CASE\n", 353 | " WHEN r.tipo_residuo = 'gerado' THEN r.total_toneladas_mensal\n", 354 | " ELSE 0\n", 355 | " END, 0\n", 356 | " ) AS total_gerado,\n", 357 | " COALESCE(\n", 358 | " CASE\n", 359 | " WHEN r.tipo_residuo = 'reciclado' THEN r.total_toneladas_mensal\n", 360 | " ELSE 0\n", 361 | " END, 0\n", 362 | " ) AS total_reciclado\n", 363 | " FROM\n", 364 | " residuos_mensais r\n", 365 | " JOIN residuos_anuais a ON date_trunc('year', r.mes) = a.ano AND r.tipo_residuo = a.tipo_residuo\n", 366 | "),\n", 367 | "residuos_agregados AS (\n", 368 | " SELECT\n", 369 | " mes,\n", 370 | " SUM(total_gerado) AS total_gerado_mensal,\n", 371 | " SUM(total_reciclado) AS total_reciclado_mensal\n", 372 | " FROM\n", 373 | " residuos_completos\n", 374 | " GROUP BY\n", 375 | " mes\n", 376 | ")\n", 377 | "SELECT\n", 378 | " rc.mes,\n", 379 | " rc.tipo_residuo,\n", 380 | " rc.total_toneladas_mensal,\n", 381 | " rc.total_toneladas_anual,\n", 382 | " ra.total_gerado_mensal,\n", 383 | " ra.total_reciclado_mensal,\n", 384 | " CASE\n", 385 | " WHEN ra.total_gerado_mensal > 0 THEN\n", 386 | " 100 * (ra.total_gerado_mensal - ra.total_reciclado_mensal) / ra.total_gerado_mensal\n", 387 | " ELSE\n", 388 | " 0\n", 389 | " END AS pct_falta_reciclar\n", 390 | "FROM\n", 391 | " residuos_completos rc\n", 392 | "JOIN\n", 393 | " residuos_agregados ra ON rc.mes = ra.mes\n", 394 | "ORDER BY\n", 395 | " rc.mes, rc.tipo_residuo;\n", 396 | "```\n", 397 | "\n", 398 | "### Explicação da Query\n", 399 | "\n", 400 | "1. **CTE `residuos_mensais`**:\n", 401 | " - Agrupa os resíduos por mês e tipo, calculando o total de toneladas mensais para cada tipo de resíduo (gerado e reciclado).\n", 402 | "\n", 403 | "2. **CTE `residuos_anuais`**:\n", 404 | " - Agrupa os resíduos por ano e tipo, calculando o total de toneladas anuais para cada tipo de resíduo (gerado e reciclado).\n", 405 | "\n", 406 | "3. **CTE `residuos_completos`**:\n", 407 | " - Junta os totais mensais e anuais dos resíduos, separando os resíduos gerados e reciclados em colunas diferentes para facilitar o cálculo.\n", 408 | "\n", 409 | "4. **CTE `residuos_agregados`**:\n", 410 | " - Agrega os resíduos gerados e reciclados por mês.\n", 411 | "\n", 412 | "5. **Seleção Final**:\n", 413 | " - Calcula o percentual do que falta para a quantidade de resíduos reciclados atingir a quantidade de resíduos gerados no mês.\n", 414 | " \n" 415 | ], 416 | "metadata": { 417 | "id": "l3vyWCFckvRE" 418 | } 419 | }, 420 | { 421 | "cell_type": "markdown", 422 | "source": [ 423 | "# 📌 **Uso de Recursos Renováveis: Percentual de energia renovável no consumo total**\n", 424 | "\n", 425 | "**Descrição**:\n", 426 | "Este KPI mede o percentual de energia renovável utilizada em relação ao consumo total de energia da empresa. Ele reflete o compromisso da empresa com práticas sustentáveis e a transição para fontes de energia renovável.\n", 427 | "\n", 428 | "**Importância para o departamento ESG e para a empresa**:\n", 429 | "- **🌍 Sustentabilidade Ambiental**: Aumentar o uso de energia renovável ajuda a reduzir a pegada de carbono e promove a sustentabilidade ambiental.\n", 430 | "- **💡 Eficiência Energética**: Transitar para fontes de energia renovável pode resultar em economia a longo prazo e maior independência energética.\n", 431 | "- **📉 Conformidade Regulamentar**: Atender a regulamentações e metas de sustentabilidade é crucial para a conformidade regulatória.\n", 432 | "- **🏢 Reputação e Marca**: Empresas que adotam práticas de energia renovável são vistas de forma mais positiva por consumidores e investidores.\n", 433 | "\n", 434 | "### Query SQL\n", 435 | "\n", 436 | "Vamos assumir que temos uma tabela `consumo_energia` com os seguintes campos:\n", 437 | "- `id`: ID do registro de consumo\n", 438 | "- `data_consumo`: Data do consumo de energia\n", 439 | "- `kwh_utilizados`: Quantidade de quilowatts-hora (kWh) consumidos\n", 440 | "- `fonte_energia`: Fonte de energia utilizada (renovável ou não renovável)\n", 441 | "\n", 442 | "Para calcular o percentual de energia renovável no consumo total, agregamos o consumo de energia por tipo, mês e ano.\n", 443 | "\n", 444 | "Aqui está a query SQL para calcular o uso de recursos renováveis:\n", 445 | "\n", 446 | "```sql\n", 447 | "WITH energia_mensal AS (\n", 448 | " SELECT\n", 449 | " date_trunc('month', data_consumo) AS mes,\n", 450 | " fonte_energia,\n", 451 | " SUM(kwh_utilizados) AS total_kwh_mensal\n", 452 | " FROM\n", 453 | " consumo_energia\n", 454 | " GROUP BY\n", 455 | " date_trunc('month', data_consumo), fonte_energia\n", 456 | "),\n", 457 | "energia_anual AS (\n", 458 | " SELECT\n", 459 | " date_trunc('year', data_consumo) AS ano,\n", 460 | " fonte_energia,\n", 461 | " SUM(kwh_utilizados) AS total_kwh_anual\n", 462 | " FROM\n", 463 | " consumo_energia\n", 464 | " GROUP BY\n", 465 | " date_trunc('year', data_consumo), fonte_energia\n", 466 | "),\n", 467 | "energia_agregada_mensal AS (\n", 468 | " SELECT\n", 469 | " mes,\n", 470 | " SUM(total_kwh_mensal) FILTER (WHERE fonte_energia = 'renovável') AS kwh_renovavel_mensal,\n", 471 | " SUM(total_kwh_mensal) AS kwh_total_mensal\n", 472 | " FROM\n", 473 | " energia_mensal\n", 474 | " GROUP BY\n", 475 | " mes\n", 476 | "),\n", 477 | "energia_agregada_anual AS (\n", 478 | " SELECT\n", 479 | " ano,\n", 480 | " SUM(total_kwh_anual) FILTER (WHERE fonte_energia = 'renovável') AS kwh_renovavel_anual,\n", 481 | " SUM(total_kwh_anual) AS kwh_total_anual\n", 482 | " FROM\n", 483 | " energia_anual\n", 484 | " GROUP BY\n", 485 | " ano\n", 486 | ")\n", 487 | "SELECT\n", 488 | " em.mes,\n", 489 | " em.kwh_renovavel_mensal,\n", 490 | " em.kwh_total_mensal,\n", 491 | " (em.kwh_renovavel_mensal::float / em.kwh_total_mensal) * 100 AS pct_energia_renovavel_mensal,\n", 492 | " ea.kwh_renovavel_anual,\n", 493 | " ea.kwh_total_anual,\n", 494 | " (ea.kwh_renovavel_anual::float / ea.kwh_total_anual) * 100 AS pct_energia_renovavel_anual\n", 495 | "FROM\n", 496 | " energia_agregada_mensal em\n", 497 | " JOIN energia_agregada_anual ea ON date_trunc('year', em.mes) = ea.ano\n", 498 | "ORDER BY\n", 499 | " em.mes;\n", 500 | "```\n", 501 | "\n", 502 | "### Explicação da Query\n", 503 | "\n", 504 | "1. **CTE `energia_mensal`**:\n", 505 | " - Agrupa o consumo de energia por mês e fonte de energia, calculando o total de kWh consumidos mensalmente para cada fonte de energia (renovável e não renovável).\n", 506 | "\n", 507 | "2. **CTE `energia_anual`**:\n", 508 | " - Agrupa o consumo de energia por ano e fonte de energia, calculando o total de kWh consumidos anualmente para cada fonte de energia.\n", 509 | "\n", 510 | "3. **CTE `energia_agregada_mensal`**:\n", 511 | " - Agrega o total de kWh mensais por fonte de energia, separando o consumo de energia renovável e o consumo total.\n", 512 | "\n", 513 | "4. **CTE `energia_agregada_anual`**:\n", 514 | " - Agrega o total de kWh anuais por fonte de energia, separando o consumo de energia renovável e o consumo total.\n", 515 | "\n", 516 | "5. **Seleção Final**:\n", 517 | " - Calcula o percentual de energia renovável no consumo total mensal e anual, permitindo a comparação e análise dos valores ao longo do tempo.\n", 518 | "\n", 519 | "### Descrição das colunas\n", 520 | "\n", 521 | "- **kwh_renovavel_mensal**: A quantidade de energia renovável consumida em kWh durante o mês.\n", 522 | "- **kwh_total_mensal**: A quantidade total de energia consumida em kWh durante o mês.\n", 523 | "- **pct_energia_renovavel_mensal**: O percentual de energia renovável consumida em relação ao consumo total durante o mês.\n", 524 | "- **kwh_renovavel_anual**: A quantidade de energia renovável consumida em kWh durante o ano.\n", 525 | "- **kwh_total_anual**: A quantidade total de energia consumida em kWh durante o ano.\n", 526 | "- **pct_energia_renovavel_anual**: O percentual de energia renovável consumida em relação ao consumo total durante o ano.\n", 527 | "\n", 528 | "Esses dados fornecem uma visão detalhada do uso de energia renovável pela empresa, tanto em termos absolutos quanto percentuais, permitindo uma análise eficaz das tendências e a identificação de oportunidades para aumentar o uso de recursos renováveis.\n" 529 | ], 530 | "metadata": { 531 | "id": "xtdurGzmkxCc" 532 | } 533 | } 534 | ] 535 | } -------------------------------------------------------------------------------- /12 - ESG/2 - Social/queries_social.ipynb: -------------------------------------------------------------------------------- 1 | { 2 | "nbformat": 4, 3 | "nbformat_minor": 0, 4 | "metadata": { 5 | "colab": { 6 | "provenance": [] 7 | }, 8 | "kernelspec": { 9 | "name": "python3", 10 | "display_name": "Python 3" 11 | }, 12 | "language_info": { 13 | "name": "python" 14 | } 15 | }, 16 | "cells": [ 17 | { 18 | "cell_type": "markdown", 19 | "source": [ 20 | "# 📊 Repositório de Consultas SQL para Analistas de Dados: **Departamento ESG - Social**\n", 21 | "\n", 22 | "ESG é um **conjunto de padrões e boas práticas que visa definir se uma empresa é socialmente consciente, sustentável e corretamente gerenciada**. Trata-se de uma forma de medir o desempenho de sustentabilidade de uma organização. A sigla, em inglês, reúne os três pilares desse movimento:\n", 23 | "-\tEnvironmental (meio ambiente)\n", 24 | "-\tSocial\n", 25 | "-\tGovernance (governança)\n", 26 | "\n", 27 | "Quando falamos dos critérios sociais, abrimos um leque muito grande de questões a serem consideradas. Para os investidores, por exemplo, é essencial entender como a empresa preza pelo bem-estar dos funcionários.\n", 28 | "\n", 29 | "Entre os pontos analisados pelos investidores e pelos gestores de fundos de investimentos, incluem-se:\n", 30 | "- Qual a taxa de turnover?\n", 31 | "- Há algum tipo de plano de previdência para os funcionários?\n", 32 | "- Qual o nível de envolvimento dos funcionários com a gestão da empresa?\n", 33 | "- Quais os benefícios e vantagens oferecidos aos funcionários, além do salário? - O salário do funcionário é justo — em relação aos praticados dentro da empresa e também em relação ao mercado?\n", 34 | "\n", 35 | "No eixo Social encontra-se também a relação com fornecedores. Por isso, é importante avaliá-los do ponto de vista dos critérios em ESG em relação a trabalho infantil, trabalho escravo, atuação em áreas desmatadas ou queimadas, e promover a transparência na relação.\n", 36 | "\n", 37 | "Comentários sobre o Projeto:\n", 38 | "- 🔍 Contribuições: Estamos abertos a contribuições da comunidade de analistas de dados! Se você tiver consultas SQL úteis que gostaria de compartilhar ou sugestões para melhorias, sinta-se à vontade para enviar um pull request. Juntos, podemos expandir e aprimorar este repositório para beneficiar toda a comunidade de análise de dados.\n", 39 | "- 🎯 Sinta-se à vontade para explorar, utilizar e contribuir para este repositório, e que ele possa ser uma ferramenta valiosa em sua jornada como analista de dados!" 40 | ], 41 | "metadata": { 42 | "id": "vjqSg4TxgLfQ" 43 | } 44 | }, 45 | { 46 | "cell_type": "markdown", 47 | "source": [ 48 | "# 📌 **Taxa de Rotatividade de Funcionários (Turnover Rate): Taxa de rotatividade anual de funcionários**\n", 49 | "\n", 50 | "**Descrição**:\n", 51 | "Este KPI mede a porcentagem de funcionários que deixam a empresa em um ano em relação ao número total de funcionários. A taxa de rotatividade é um indicador importante de satisfação dos funcionários, ambiente de trabalho, e eficiência nos processos de recursos humanos.\n", 52 | "\n", 53 | "**Importância para o departamento ESG e para a empresa**:\n", 54 | "- **🔄 Estabilidade Organizacional**: Alta taxa de rotatividade pode indicar problemas no ambiente de trabalho, falta de oportunidades de crescimento ou insatisfação com a liderança.\n", 55 | "- **📊 Eficiência Operacional**: Custos associados à contratação e treinamento de novos funcionários podem ser altos. Reduzir a rotatividade ajuda a diminuir esses custos.\n", 56 | "- **🌱 Sustentabilidade Social**: Empresas que mantêm um ambiente de trabalho saudável e satisfatório para seus funcionários tendem a ser mais sustentáveis a longo prazo.\n", 57 | "- **🏢 Reputação Corporativa**: Baixa rotatividade pode melhorar a imagem da empresa, tornando-a mais atraente para novos talentos e investidores.\n", 58 | "\n", 59 | "### Query SQL para KPI\n", 60 | "\n", 61 | "Vamos assumir que temos duas tabelas: `funcionarios` e `demissoes`.\n", 62 | "\n", 63 | "- Tabela `funcionarios`:\n", 64 | " - `id`: ID do funcionário\n", 65 | " - `data_admissao`: Data de admissão do funcionário\n", 66 | " - `data_demissao`: Data de demissão do funcionário (pode ser NULL se ainda estiver empregado)\n", 67 | " - `status`: Status do funcionário (ativo ou demitido)\n", 68 | "\n", 69 | "- Tabela `demissoes`:\n", 70 | " - `id`: ID do funcionário\n", 71 | " - `data_demissao`: Data de demissão do funcionário\n", 72 | "\n", 73 | "Para calcular a taxa de rotatividade anual, precisamos do número de demissões no ano e do número médio de funcionários no ano.\n", 74 | "\n", 75 | "Aqui está a query SQL para calcular a taxa de rotatividade anual, incluindo o uso de `date_trunc('year')` para medir o KPI de forma histórica:\n", 76 | "\n", 77 | "```sql\n", 78 | "WITH demissoes_anuais AS (\n", 79 | " SELECT\n", 80 | " date_trunc('year', data_demissao) AS ano,\n", 81 | " COUNT(*) AS total_demissoes\n", 82 | " FROM\n", 83 | " demissoes\n", 84 | " GROUP BY\n", 85 | " date_trunc('year', data_demissao)\n", 86 | "),\n", 87 | "funcionarios_atuais AS (\n", 88 | " SELECT\n", 89 | " date_trunc('year', COALESCE(data_demissao, current_date)) AS ano,\n", 90 | " COUNT(*) AS total_funcionarios\n", 91 | " FROM\n", 92 | " funcionarios\n", 93 | " WHERE\n", 94 | " (data_admissao <= date_trunc('year', current_date) AND (data_demissao IS NULL OR data_demissao > date_trunc('year', current_date)))\n", 95 | " GROUP BY\n", 96 | " date_trunc('year', COALESCE(data_demissao, current_date))\n", 97 | "),\n", 98 | "funcionarios_medio_anuais AS (\n", 99 | " SELECT\n", 100 | " f.ano,\n", 101 | " (f.total_funcionarios + COALESCE(d.total_demissoes, 0)) / 2 AS media_funcionarios\n", 102 | " FROM\n", 103 | " funcionarios_atuais f\n", 104 | " LEFT JOIN demissoes_anuais d ON f.ano = d.ano\n", 105 | ")\n", 106 | "SELECT\n", 107 | " d.ano,\n", 108 | " d.total_demissoes,\n", 109 | " f.media_funcionarios,\n", 110 | " (d.total_demissoes / f.media_funcionarios) * 100 AS turnover_rate\n", 111 | "FROM\n", 112 | " demissoes_anuais d\n", 113 | " JOIN funcionarios_medio_anuais f ON d.ano = f.ano\n", 114 | "ORDER BY\n", 115 | " d.ano;\n", 116 | "```\n", 117 | "\n", 118 | "### Explicação da Query:\n", 119 | "\n", 120 | "1. **CTE `demissoes_anuais`**:\n", 121 | " - Agrupa e conta o número de demissões por ano.\n", 122 | "\n", 123 | "2. **CTE `funcionarios_atuais`**:\n", 124 | " - Conta o número total de funcionários no final de cada ano, considerando tanto os funcionários ainda ativos quanto os que foram demitidos dentro do ano.\n", 125 | "\n", 126 | "3. **CTE `funcionarios_medio_anuais`**:\n", 127 | " - Calcula o número médio de funcionários no ano, considerando o número de funcionários no início e no final do ano.\n", 128 | " - media_funcionarios: Média de funcionários no ano, calculada como a soma do número total de funcionários no início do ano e o número total de demissões durante o ano, dividida por 2. Esta média ajuda a suavizar as variações e fornece uma base mais estável para calcular a taxa de rotatividade.\n", 129 | "\n", 130 | "4. **Seleção Final**:\n", 131 | " - Junta as demissões anuais com o número médio de funcionários e calcula a taxa de rotatividade como a porcentagem de demissões em relação ao número médio de funcionários.\n", 132 | "\n", 133 | "Esta query fornecerá a taxa de rotatividade anual de funcionários, permitindo que a empresa acompanhe e analise as tendências de retenção de talentos ao longo do tempo.\n" 134 | ], 135 | "metadata": { 136 | "id": "bsV_VOeip4Vu" 137 | } 138 | }, 139 | { 140 | "cell_type": "markdown", 141 | "source": [ 142 | "# 📌 **Investimento em Comunidade: Valor investido em projetos comunitários e sociais**\n", 143 | "\n", 144 | "**Descrição**:\n", 145 | "Este KPI mede o valor total investido pela empresa em projetos comunitários e sociais. Ele inclui todos os gastos e investimentos destinados a apoiar e desenvolver as comunidades locais, seja através de doações, patrocínios, programas de voluntariado corporativo, entre outros.\n", 146 | "\n", 147 | "**Importância para o departamento ESG e para a empresa**:\n", 148 | "- **👥 Impacto Social Positivo**: Investir em comunidades locais ajuda a melhorar a qualidade de vida das pessoas e promove o desenvolvimento social e econômico.\n", 149 | "- **🌟 Reputação e Marca**: Demonstrar um compromisso com a responsabilidade social pode melhorar a imagem da empresa e fortalecer sua marca.\n", 150 | "- **📈 Conformidade Regulamentar**: Atender às expectativas e requisitos de responsabilidade social pode ser crucial para a conformidade com regulamentos e diretrizes ESG.\n", 151 | "- **🤝 Relacionamento com a Comunidade**: Investimentos em comunidade ajudam a construir relacionamentos positivos com stakeholders locais, incluindo governos, ONGs, e residentes.\n", 152 | "\n", 153 | "### Query SQL para KPI\n", 154 | "\n", 155 | "Vamos assumir que temos uma tabela `investimentos_comunidade` com os seguintes campos:\n", 156 | "- `id`: ID do investimento\n", 157 | "- `projeto`: Nome do projeto comunitário\n", 158 | "- `valor`: Valor investido no projeto\n", 159 | "- `data_investimento`: Data em que o investimento foi realizado\n", 160 | "\n", 161 | "Aqui está a query SQL para calcular o valor total investido em projetos comunitários:\n", 162 | "\n", 163 | "```sql\n", 164 | "WITH investimentos_mensais AS (\n", 165 | " SELECT\n", 166 | " date_trunc('month', data_investimento) AS mes,\n", 167 | " COUNT(DISTINCT projeto) AS num_projetos_mensal,\n", 168 | " SUM(valor) AS total_investido_mensal,\n", 169 | " AVG(valor) AS media_investido_projeto_mensal\n", 170 | " FROM\n", 171 | " investimentos_comunidade\n", 172 | " GROUP BY\n", 173 | " date_trunc('month', data_investimento)\n", 174 | "),\n", 175 | "investimentos_anuais AS (\n", 176 | " SELECT\n", 177 | " date_trunc('year', data_investimento) AS ano,\n", 178 | " COUNT(DISTINCT projeto) AS num_projetos_anual,\n", 179 | " SUM(valor) AS total_investido_anual,\n", 180 | " AVG(valor) AS media_investido_projeto_anual\n", 181 | " FROM\n", 182 | " investimentos_comunidade\n", 183 | " GROUP BY\n", 184 | " date_trunc('year', data_investimento)\n", 185 | "),\n", 186 | "investimentos_completos AS (\n", 187 | " SELECT\n", 188 | " i.mes,\n", 189 | " i.num_projetos_mensal,\n", 190 | " i.total_investido_mensal,\n", 191 | " i.media_investido_projeto_mensal,\n", 192 | " a.num_projetos_anual,\n", 193 | " a.total_investido_anual,\n", 194 | " a.media_investido_projeto_anual,\n", 195 | " LAG(i.total_investido_mensal) OVER (ORDER BY i.mes) AS investimento_mes_anterior,\n", 196 | " LAG(a.total_investido_anual) OVER (ORDER BY a.ano) AS investimento_ano_anterior\n", 197 | " FROM\n", 198 | " investimentos_mensais i\n", 199 | " JOIN investimentos_anuais a ON date_trunc('year', i.mes) = a.ano\n", 200 | ")\n", 201 | "SELECT\n", 202 | " mes,\n", 203 | " num_projetos_mensal,\n", 204 | " total_investido_mensal,\n", 205 | " media_investido_projeto_mensal,\n", 206 | " num_projetos_anual,\n", 207 | " total_investido_anual,\n", 208 | " media_investido_projeto_anual,\n", 209 | " COALESCE(100 * (total_investido_mensal - investimento_mes_anterior) / investimento_mes_anterior, 0) AS pct_crescimento_mensal,\n", 210 | " COALESCE(100 * (total_investido_anual - investimento_ano_anterior) / investimento_ano_anterior, 0) AS pct_crescimento_anual\n", 211 | "FROM\n", 212 | " investimentos_completos\n", 213 | "ORDER BY\n", 214 | " mes;\n", 215 | "```\n", 216 | "\n", 217 | "### Explicação da Query\n", 218 | "\n", 219 | "1. **CTE `investimentos_mensais`**:\n", 220 | " - Calcula o número de projetos, valor total investido e valor médio investido por projeto, agregando por mês.\n", 221 | "\n", 222 | "2. **CTE `investimentos_anuais`**:\n", 223 | " - Calcula o número de projetos, valor total investido e valor médio investido por projeto, agregando por ano.\n", 224 | "\n", 225 | "3. **CTE `investimentos_completos`**:\n", 226 | " - Junta as informações mensais e anuais, adicionando colunas para o valor investido no mês anterior e no ano anterior.\n", 227 | "\n", 228 | "4. **Seleção Final**:\n", 229 | " - Calcula a comparação percentual do investimento em relação ao mês e ano anterior, e seleciona todas as colunas para fornecer uma visão detalhada dos investimentos." 230 | ], 231 | "metadata": { 232 | "id": "JU0yk-VklX4d" 233 | } 234 | }, 235 | { 236 | "cell_type": "markdown", 237 | "source": [ 238 | "# 📌 **Saúde e Segurança no Trabalho: Número de incidentes/acidentes de trabalho**\n", 239 | "\n", 240 | "**Descrição**:\n", 241 | "Este KPI mede o número de incidentes e acidentes de trabalho ocorridos em um determinado período. Ele reflete a segurança do ambiente de trabalho e a eficácia das medidas de prevenção de acidentes implementadas pela empresa.\n", 242 | "\n", 243 | "**Importância para o departamento ESG e para a empresa**:\n", 244 | "- **🔒 Segurança dos Funcionários**: Reduzir incidentes e acidentes é crucial para garantir a segurança e o bem-estar dos funcionários.\n", 245 | "- **💰 Redução de Custos**: Menos acidentes resultam em menos custos relacionados a seguros, indenizações e perda de produtividade.\n", 246 | "- **📈 Conformidade Regulamentar**: Atender às normas e regulamentações de segurança no trabalho evita multas e sanções.\n", 247 | "- **🏢 Reputação e Marca**: Empresas com um bom histórico de segurança no trabalho são mais atraentes para talentos e investidores.\n", 248 | "\n", 249 | "### Query SQL\n", 250 | "\n", 251 | "Vamos assumir que temos uma tabela `incidentes_trabalho` com os seguintes campos:\n", 252 | "- `id`: ID do incidente\n", 253 | "- `tipo_incidente`: Tipo de incidente/acidente\n", 254 | "- `data_incidente`: Data em que o incidente ocorreu\n", 255 | "- `gravidade`: Nível de gravidade do incidente (leve, moderado, grave)\n", 256 | "- `custo`: Custo associado ao incidente\n", 257 | "\n", 258 | "Aqui está a query SQL para calcular o número de incidentes de trabalho:\n", 259 | "\n", 260 | "```sql\n", 261 | "WITH incidentes_mensais AS (\n", 262 | " SELECT\n", 263 | " date_trunc('month', data_incidente) AS mes,\n", 264 | " COUNT(DISTINCT id) AS total_incidentes_mensal,\n", 265 | " SUM(custo) AS total_custo_mensal,\n", 266 | " AVG(custo) AS media_custo_mensal\n", 267 | " FROM\n", 268 | " incidentes_trabalho\n", 269 | " GROUP BY\n", 270 | " date_trunc('month', data_incidente)\n", 271 | "),\n", 272 | "incidentes_anuais AS (\n", 273 | " SELECT\n", 274 | " date_trunc('year', data_incidente) AS ano,\n", 275 | " COUNT(DISTINCT id) AS total_incidentes_anual,\n", 276 | " SUM(custo) AS total_custo_anual,\n", 277 | " AVG(custo) AS media_custo_anual\n", 278 | " FROM\n", 279 | " incidentes_trabalho\n", 280 | " GROUP BY\n", 281 | " date_trunc('year', data_incidente)\n", 282 | "),\n", 283 | "incidentes_completos AS (\n", 284 | " SELECT\n", 285 | " i.mes,\n", 286 | " i.total_incidentes_mensal,\n", 287 | " i.total_custo_mensal,\n", 288 | " i.media_custo_mensal,\n", 289 | " a.total_incidentes_anual,\n", 290 | " a.total_custo_anual,\n", 291 | " a.media_custo_anual,\n", 292 | " LAG(i.total_incidentes_mensal) OVER (ORDER BY i.mes) AS incidentes_mes_anterior,\n", 293 | " LAG(a.total_incidentes_anual) OVER (ORDER BY a.ano) AS incidentes_ano_anterior,\n", 294 | " LAG(i.total_custo_mensal) OVER (ORDER BY i.mes) AS custo_mes_anterior,\n", 295 | " LAG(a.total_custo_anual) OVER (ORDER BY a.ano) AS custo_ano_anterior\n", 296 | " FROM\n", 297 | " incidentes_mensais i\n", 298 | " JOIN incidentes_anuais a ON date_trunc('year', i.mes) = a.ano\n", 299 | ")\n", 300 | "SELECT\n", 301 | " mes,\n", 302 | " total_incidentes_mensal,\n", 303 | " total_custo_mensal,\n", 304 | " media_custo_mensal,\n", 305 | " total_incidentes_anual,\n", 306 | " total_custo_anual,\n", 307 | " media_custo_anual,\n", 308 | " COALESCE(100 * (total_incidentes_mensal - incidentes_mes_anterior) / incidentes_mes_anterior, 0) AS pct_crescimento_incidentes_mensal,\n", 309 | " COALESCE(100 * (total_incidentes_anual - incidentes_ano_anterior) / incidentes_ano_anterior, 0) AS pct_crescimento_incidentes_anual,\n", 310 | " COALESCE(100 * (total_custo_mensal - custo_mes_anterior) / custo_mes_anterior, 0) AS pct_crescimento_custo_mensal,\n", 311 | " COALESCE(100 * (total_custo_anual - custo_ano_anterior) / custo_ano_anterior, 0) AS pct_crescimento_custo_anual\n", 312 | "FROM\n", 313 | " incidentes_completos\n", 314 | "ORDER BY\n", 315 | " mes;\n", 316 | "```\n", 317 | "\n", 318 | "### Explicação da Query\n", 319 | "\n", 320 | "1. **CTE `incidentes_mensais`**:\n", 321 | " - Calcula o número total de incidentes, o custo total, e o custo médio por incidente, agregando por mês.\n", 322 | "\n", 323 | "2. **CTE `incidentes_anuais`**:\n", 324 | " - Calcula o número total de incidentes, o custo total, e o custo médio por incidente, agregando por ano.\n", 325 | "\n", 326 | "3. **CTE `incidentes_completos`**:\n", 327 | " - Junta as informações mensais e anuais, adicionando colunas para o número de incidentes e o custo total no mês e no ano anterior.\n", 328 | "\n", 329 | "4. **Seleção Final**:\n", 330 | " - Calcula a comparação percentual do número de incidentes e do custo total em relação ao mês e ano anterior, e seleciona todas as colunas para fornecer uma visão detalhada dos incidentes de trabalho.\n", 331 | " " 332 | ], 333 | "metadata": { 334 | "id": "FB48DqFwlYfl" 335 | } 336 | }, 337 | { 338 | "cell_type": "markdown", 339 | "source": [ 340 | "# 📌 **Diversidade e Inclusão: Percentual de diversidade no local de trabalho (gênero, etnia, etc.)**\n", 341 | "\n", 342 | "**Descrição**:\n", 343 | "Este KPI mede o percentual de diversidade no local de trabalho, levando em consideração diferentes aspectos como gênero, etnia, e outros indicadores de diversidade. Ele reflete o compromisso da empresa com a criação de um ambiente inclusivo e diversificado.\n", 344 | "\n", 345 | "**Importância para o departamento ESG e para a empresa**:\n", 346 | "- **👥 Inclusão e Igualdade**: Promover a diversidade no local de trabalho pode contribuir para um ambiente com mais oportunidades para todos os funcionários.\n", 347 | "- **📈 Desempenho Organizacional**: Equipes com perspectivas diversas tendem a ser mais inovadoras e performáticas.\n", 348 | "- **🌱 Sustentabilidade Social**: A diversidade é um componente importante da sustentabilidade social e ajuda a empresa a cumprir diretrizes sociais e regulatórias.\n", 349 | "- **🏢 Reputação e Marca**: Empresas que promovem a diversidade e inclusão podem melhorar sua reputação e atrair talentos de alta qualidade.\n", 350 | "\n", 351 | "### Query SQL\n", 352 | "\n", 353 | "Vamos assumir que temos uma tabela `funcionarios` com os seguintes campos:\n", 354 | "- `id`: ID do funcionário\n", 355 | "- `genero`: Gênero do funcionário\n", 356 | "- `etnia`: Etnia do funcionário\n", 357 | "- `data_admissao`: Data de admissão do funcionário\n", 358 | "- `data_demissao`: Data de demissão do funcionário (pode ser NULL se ainda estiver empregado)\n", 359 | "\n", 360 | "Para calcular o percentual de diversidade, precisamos agrupar os dados por gênero e etnia e calcular o percentual de cada grupo em relação ao total de funcionários.\n", 361 | "\n", 362 | "Aqui está a query SQL para calcular o percentual de diversidade por gênero e etnia:\n", 363 | "\n", 364 | "```sql\n", 365 | "WITH funcionarios_ativos AS (\n", 366 | " SELECT\n", 367 | " id,\n", 368 | " genero,\n", 369 | " etnia,\n", 370 | " date_trunc('month', data_admissao) AS mes,\n", 371 | " date_trunc('year', data_admissao) AS ano\n", 372 | " FROM\n", 373 | " funcionarios\n", 374 | " WHERE\n", 375 | " data_demissao IS NULL OR data_demissao > current_date\n", 376 | "),\n", 377 | "diversidade_mensal AS (\n", 378 | " SELECT\n", 379 | " mes,\n", 380 | " genero,\n", 381 | " etnia,\n", 382 | " COUNT(*) AS total_genero_etnia,\n", 383 | " (SELECT COUNT(*) FROM funcionarios_ativos WHERE mes = f.mes) AS total_funcionarios\n", 384 | " FROM\n", 385 | " funcionarios_ativos f\n", 386 | " GROUP BY\n", 387 | " mes, genero, etnia\n", 388 | "),\n", 389 | "diversidade_anual AS (\n", 390 | " SELECT\n", 391 | " ano,\n", 392 | " genero,\n", 393 | " etnia,\n", 394 | " COUNT(*) AS total_genero_etnia,\n", 395 | " (SELECT COUNT(*) FROM funcionarios_ativos WHERE ano = f.ano) AS total_funcionarios\n", 396 | " FROM\n", 397 | " funcionarios_ativos f\n", 398 | " GROUP BY\n", 399 | " ano, genero, etnia\n", 400 | ")\n", 401 | "SELECT\n", 402 | " d.mes,\n", 403 | " d.genero,\n", 404 | " d.etnia,\n", 405 | " d.total_genero_etnia,\n", 406 | " d.total_funcionarios,\n", 407 | " (d.total_genero_etnia::float / d.total_funcionarios) * 100 AS pct_diversidade_mensal,\n", 408 | " a.ano,\n", 409 | " a.total_genero_etnia AS total_genero_etnia_anual,\n", 410 | " a.total_funcionarios AS total_funcionarios_anual,\n", 411 | " (a.total_genero_etnia::float / a.total_funcionarios) * 100 AS pct_diversidade_anual\n", 412 | "FROM\n", 413 | " diversidade_mensal d\n", 414 | " JOIN diversidade_anual a ON d.genero = a.genero AND d.etnia = a.etnia AND date_trunc('year', d.mes) = a.ano\n", 415 | "ORDER BY\n", 416 | " d.mes, d.genero, d.etnia;\n", 417 | "```\n", 418 | "\n", 419 | "### Explicação da Query\n", 420 | "\n", 421 | "1. **CTE `funcionarios_ativos`**:\n", 422 | " - Seleciona os funcionários ativos (aqueles que não foram demitidos ou cuja data de demissão é posterior à data atual) e agrupa por mês e ano de admissão.\n", 423 | "\n", 424 | "2. **CTE `diversidade_mensal`**:\n", 425 | " - Agrupa os funcionários ativos por mês, gênero e etnia, calculando o número total de funcionários por gênero e etnia, e o total geral de funcionários no mês.\n", 426 | "\n", 427 | "3. **CTE `diversidade_anual`**:\n", 428 | " - Agrupa os funcionários ativos por ano, gênero e etnia, calculando o número total de funcionários por gênero e etnia, e o total geral de funcionários no ano.\n", 429 | "\n", 430 | "4. **Seleção Final**:\n", 431 | " - Junta os dados mensais e anuais, calcula os percentuais de diversidade mensal e anual por gênero e etnia, e seleciona todas as colunas para fornecer uma visão detalhada da diversidade no local de trabalho." 432 | ], 433 | "metadata": { 434 | "id": "QQC3W1b3lZH0" 435 | } 436 | }, 437 | { 438 | "cell_type": "markdown", 439 | "source": [ 440 | "# 📌 **Índice de Satisfação dos Funcionários**\n", 441 | "\n", 442 | "**Descrição**:\n", 443 | "Este KPI mede o índice de satisfação dos funcionários com base em resultados de pesquisas internas. Ele reflete o nível de contentamento e engajamento dos funcionários em relação ao ambiente de trabalho, condições de trabalho, liderança, oportunidades de crescimento e outros fatores importantes.\n", 444 | "\n", 445 | "**Importância para o departamento ESG e para a empresa**:\n", 446 | "- **🌟 Bem-estar dos Funcionários**: Funcionários satisfeitos tendem a ser mais produtivos, engajados e leais à empresa.\n", 447 | "- **📈 Desempenho Organizacional**: Altos níveis de satisfação podem levar a melhores resultados de negócios, menor rotatividade e maior inovação.\n", 448 | "- **🌱 Sustentabilidade Social**: Promover um ambiente de trabalho positivo e satisfatório contribui para a sustentabilidade social da empresa.\n", 449 | "- **🏢 Reputação e Marca**: Empresas conhecidas por cuidar bem de seus funcionários atraem melhores talentos e têm uma reputação mais forte no mercado.\n", 450 | "\n", 451 | "### Query SQL:\n", 452 | "\n", 453 | "Vamos assumir que temos uma tabela `pesquisas_satisfacao` com os seguintes campos:\n", 454 | "- `id`: ID da pesquisa\n", 455 | "- `funcionario_id`: ID do funcionário\n", 456 | "- `data_pesquisa`: Data em que a pesquisa foi realizada\n", 457 | "- `satisfacao`: Índice de satisfação do funcionário (escala de 1 a 10)\n", 458 | "\n", 459 | "Para calcular o índice de satisfação dos funcionários, agregamos os resultados das pesquisas por mês e por ano.\n", 460 | "\n", 461 | "Aqui está a query SQL para calcular o índice de satisfação dos funcionários:\n", 462 | "\n", 463 | "```sql\n", 464 | "WITH pesquisas_mensais AS (\n", 465 | " SELECT\n", 466 | " date_trunc('month', data_pesquisa) AS mes,\n", 467 | " AVG(satisfacao) AS media_satisfacao_mensal\n", 468 | " FROM\n", 469 | " pesquisas_satisfacao\n", 470 | " GROUP BY\n", 471 | " date_trunc('month', data_pesquisa)\n", 472 | "),\n", 473 | "pesquisas_anuais AS (\n", 474 | " SELECT\n", 475 | " date_trunc('year', data_pesquisa) AS ano,\n", 476 | " AVG(satisfacao) AS media_satisfacao_anual\n", 477 | " FROM\n", 478 | " pesquisas_satisfacao\n", 479 | " GROUP BY\n", 480 | " date_trunc('year', data_pesquisa)\n", 481 | ")\n", 482 | "SELECT\n", 483 | " p.mes,\n", 484 | " p.media_satisfacao_mensal,\n", 485 | " a.media_satisfacao_anual\n", 486 | "FROM\n", 487 | " pesquisas_mensais p\n", 488 | " JOIN pesquisas_anuais a ON date_trunc('year', p.mes) = a.ano\n", 489 | "ORDER BY\n", 490 | " p.mes;\n", 491 | "```\n", 492 | "\n", 493 | "### Explicação da Query:\n", 494 | "\n", 495 | "1. **CTE `pesquisas_mensais`**:\n", 496 | " - Agrupa os resultados das pesquisas por mês e calcula a média mensal de satisfação.\n", 497 | "\n", 498 | "2. **CTE `pesquisas_anuais`**:\n", 499 | " - Agrupa os resultados das pesquisas por ano e calcula a média anual de satisfação.\n", 500 | "\n", 501 | "3. **Seleção Final**:\n", 502 | " - Junta as médias mensais e anuais de satisfação, permitindo a comparação e análise dos índices ao longo do tempo.\n" 503 | ], 504 | "metadata": { 505 | "id": "ODSz7BYNnvyk" 506 | } 507 | } 508 | ] 509 | } -------------------------------------------------------------------------------- /12 - ESG/3 - Governance (Governança)/queries_governance.ipynb: -------------------------------------------------------------------------------- 1 | { 2 | "nbformat": 4, 3 | "nbformat_minor": 0, 4 | "metadata": { 5 | "colab": { 6 | "provenance": [] 7 | }, 8 | "kernelspec": { 9 | "name": "python3", 10 | "display_name": "Python 3" 11 | }, 12 | "language_info": { 13 | "name": "python" 14 | } 15 | }, 16 | "cells": [ 17 | { 18 | "cell_type": "markdown", 19 | "source": [ 20 | "# 📊 Repositório de Consultas SQL para Analistas de Dados: **Departamento ESG - Governance (Governança)**\n", 21 | "\n", 22 | "ESG é um **conjunto de padrões e boas práticas que visa definir se uma empresa é socialmente consciente, sustentável e corretamente gerenciada**. Trata-se de uma forma de medir o desempenho de sustentabilidade de uma organização. A sigla, em inglês, reúne os três pilares desse movimento:\n", 23 | "-\tEnvironmental (meio ambiente)\n", 24 | "-\tSocial\n", 25 | "-\tGovernance (governança)\n", 26 | "\n", 27 | "O aspecto governança foca em como uma empresa é administrada pelos gestores e diretores. Nesse caso, o ESG busca entender se a gestão executiva e o conselho administrativo atendem aos interesses das várias partes interessadas da empresa — funcionários, acionistas e clientes.\n", 28 | "\n", 29 | "Além disso, há outras questões avaliadas, como:\n", 30 | "- transparência financeira e contábil;\n", 31 | "- relatórios financeiros completos e honestos;\n", 32 | "- remuneração dos acionistas.\n", 33 | "\n", 34 | "Além disso, busca-se entender se essa remuneração está atrelada aos aspectos do índice e vinculada ao valor de longo prazo, a viabilidade e a lucratividade da empresa.\n", 35 | "\n", 36 | "Comentários sobre o Projeto:\n", 37 | "- 🔍 Contribuições: Estamos abertos a contribuições da comunidade de analistas de dados! Se você tiver consultas SQL úteis que gostaria de compartilhar ou sugestões para melhorias, sinta-se à vontade para enviar um pull request. Juntos, podemos expandir e aprimorar este repositório para beneficiar toda a comunidade de análise de dados.\n", 38 | "- 🎯 Sinta-se à vontade para explorar, utilizar e contribuir para este repositório, e que ele possa ser uma ferramenta valiosa em sua jornada como analista de dados!" 39 | ], 40 | "metadata": { 41 | "id": "vjqSg4TxgLfQ" 42 | } 43 | }, 44 | { 45 | "cell_type": "markdown", 46 | "source": [ 47 | "# 📌 **Composição do Conselho: Percentual de membros independentes no conselho**\n", 48 | "\n", 49 | "**🏛️ Composição do Conselho**\n", 50 | "\n", 51 | "**Descrição**:\n", 52 | "Este KPI mede o percentual de membros independentes no conselho de administração da empresa. Ele reflete a governança corporativa e a independência do conselho, que são indicadores importantes de boas práticas de gestão e transparência.\n", 53 | "\n", 54 | "**Importância para o departamento ESG e para a empresa**:\n", 55 | "- **🌐 Governança Corporativa**: A presença de membros independentes no conselho garante a independência nas tomadas de decisão, reduzindo possíveis conflitos de interesse.\n", 56 | "- **🛡️ Transparência e Confiabilidade**: Conselhos com maior independência tendem a ser mais transparentes e confiáveis, o que é valorizado por investidores e stakeholders.\n", 57 | "- **📉 Gestão de Riscos**: Membros independentes contribuem para a identificação e gestão de riscos de forma mais imparcial.\n", 58 | "- **💼 Reputação e Marca**: Empresas com boas práticas de governança são vistas de forma mais positiva no mercado e tendem a atrair investidores.\n", 59 | "\n", 60 | "### Query SQL\n", 61 | "\n", 62 | "Vamos assumir que temos uma tabela `conselho` com os seguintes campos:\n", 63 | "- `id`: ID do membro do conselho\n", 64 | "- `nome`: Nome do membro do conselho\n", 65 | "- `tipo_membro`: Tipo de membro do conselho (independente ou não independente)\n", 66 | "- `data_entrada`: Data de entrada do membro no conselho\n", 67 | "\n", 68 | "Para calcular o percentual de membros independentes no conselho, agrupamos os membros por tipo e calculamos a proporção de membros independentes em relação ao total de membros.\n", 69 | "\n", 70 | "Aqui está a query SQL para calcular a composição do conselho:\n", 71 | "\n", 72 | "```sql\n", 73 | "WITH membros_totais AS (\n", 74 | " SELECT\n", 75 | " COUNT(DISTINCT id) AS total_membros\n", 76 | " FROM\n", 77 | " conselho\n", 78 | "),\n", 79 | "membros_independentes AS (\n", 80 | " SELECT\n", 81 | " COUNT(DISTINCT id) AS total_independentes\n", 82 | " FROM\n", 83 | " conselho\n", 84 | " WHERE\n", 85 | " tipo_membro = 'independente'\n", 86 | ")\n", 87 | "SELECT\n", 88 | " mi.total_independentes,\n", 89 | " mt.total_membros,\n", 90 | " COALESCE((mi.total_independentes * 100.0 / mt.total_membros), 0) AS pct_independentes\n", 91 | "FROM\n", 92 | " membros_totais mt,\n", 93 | " membros_independentes mi;\n", 94 | "```\n", 95 | "\n", 96 | "### Explicação da Query\n", 97 | "\n", 98 | "1. **CTE `membros_totais`**:\n", 99 | " - Conta o total de membros no conselho.\n", 100 | "\n", 101 | "2. **CTE `membros_independentes`**:\n", 102 | " - Conta o total de membros independentes no conselho.\n", 103 | "\n", 104 | "3. **Seleção Final**:\n", 105 | " - Calcula o percentual de membros independentes em relação ao total de membros do conselho." 106 | ], 107 | "metadata": { 108 | "id": "bsV_VOeip4Vu" 109 | } 110 | }, 111 | { 112 | "cell_type": "markdown", 113 | "source": [ 114 | "# 📌 **Ética e Conformidade: Número de violações de ética e conformidade**\n", 115 | "\n", 116 | "**⚖️ Ética e Conformidade**\n", 117 | "\n", 118 | "**Descrição**:\n", 119 | "Este KPI mede o número de violações de ética e conformidade registradas pela empresa em um determinado período. Ele reflete o compromisso da empresa com práticas éticas e a aderência às normas e regulamentações aplicáveis.\n", 120 | "\n", 121 | "**Importância para o departamento ESG e para a empresa**:\n", 122 | "- **🔍 Monitoramento e Controle**: Identificar e monitorar as violações de ética e conformidade ajuda a empresa a implementar medidas corretivas e preventivas.\n", 123 | "- **🛡️ Redução de Riscos**: Reduzir o número de violações minimiza os riscos legais e financeiros associados a não conformidades.\n", 124 | "- **📈 Reputação e Confiabilidade**: Empresas que mantêm altos padrões éticos e de conformidade são vistas de forma mais positiva por clientes, investidores e reguladores.\n", 125 | "- **💼 Transparência e Responsabilidade**: Relatar violações de forma transparente demonstra responsabilidade e compromisso com a melhoria contínua.\n", 126 | "\n", 127 | "### Query SQL\n", 128 | "\n", 129 | "Vamos assumir que temos uma tabela `violacoes_etica` com os seguintes campos:\n", 130 | "- `id`: ID da violação\n", 131 | "- `descricao`: Descrição da violação\n", 132 | "- `data_violacao`: Data da violação\n", 133 | "- `tipo_violacao`: Tipo de violação (ética ou conformidade)\n", 134 | "\n", 135 | "Para calcular o número de violações de ética e conformidade, agrupamos as violações por tipo, mês e ano.\n", 136 | "\n", 137 | "Aqui está a query SQL para calcular o número de violações de ética e conformidade:\n", 138 | "\n", 139 | "```sql\n", 140 | "WITH violacoes_mensais AS (\n", 141 | " SELECT\n", 142 | " date_trunc('month', data_violacao) AS mes,\n", 143 | " tipo_violacao,\n", 144 | " COUNT(DISTINCT id) AS total_violacoes_mensal\n", 145 | " FROM\n", 146 | " violacoes_etica\n", 147 | " GROUP BY\n", 148 | " date_trunc('month', data_violacao), tipo_violacao\n", 149 | "),\n", 150 | "violacoes_anuais AS (\n", 151 | " SELECT\n", 152 | " date_trunc('year', data_violacao) AS ano,\n", 153 | " tipo_violacao,\n", 154 | " COUNT(DISTINCT id) AS total_violacoes_anual\n", 155 | " FROM\n", 156 | " violacoes_etica\n", 157 | " GROUP BY\n", 158 | " date_trunc('year', data_violacao), tipo_violacao\n", 159 | ")\n", 160 | "SELECT\n", 161 | " vm.mes,\n", 162 | " vm.tipo_violacao,\n", 163 | " vm.total_violacoes_mensal,\n", 164 | " va.total_violacoes_anual\n", 165 | "FROM\n", 166 | " violacoes_mensais vm\n", 167 | "JOIN\n", 168 | " violacoes_anuais va ON date_trunc('year', vm.mes) = va.ano AND vm.tipo_violacao = va.tipo_violacao\n", 169 | "ORDER BY\n", 170 | " vm.mes, vm.tipo_violacao;\n", 171 | "```\n", 172 | "\n", 173 | "### Explicação da Query\n", 174 | "\n", 175 | "1. **CTE `violacoes_mensais`**:\n", 176 | " - Agrupa as violações de ética e conformidade por mês e tipo, calculando o total de violações mensais por tipo de violação.\n", 177 | "\n", 178 | "2. **CTE `violacoes_anuais`**:\n", 179 | " - Agrupa as violações de ética e conformidade por ano e tipo, calculando o total de violações anuais por tipo de violação.\n", 180 | "\n", 181 | "3. **Seleção Final**:\n", 182 | " - Junta os totais mensais e anuais das violações por tipo, permitindo a comparação e análise dos valores ao longo do tempo.\n", 183 | "\n" 184 | ], 185 | "metadata": { 186 | "id": "earu7YjBpnmM" 187 | } 188 | }, 189 | { 190 | "cell_type": "markdown", 191 | "source": [ 192 | "# 📌 **Remuneração dos Executivos: Relação entre a remuneração dos executivos e a mediana dos salários dos funcionários**\n", 193 | "\n", 194 | "**💼 Remuneração dos Executivos**\n", 195 | "\n", 196 | "**Descrição**:\n", 197 | "Este KPI mede a relação entre a remuneração dos executivos e a mediana dos salários dos funcionários da empresa. Ele reflete a equidade salarial e a justiça na distribuição da remuneração dentro da organização.\n", 198 | "\n", 199 | "**Importância para o departamento ESG e para a empresa**:\n", 200 | "- **📊 Equidade Salarial**: Monitorar a diferença entre a remuneração dos executivos e a mediana dos salários dos funcionários ajuda a promover a equidade salarial na empresa.\n", 201 | "- **🛡️ Retenção de Talentos**: Políticas salariais justas contribuem para a retenção de talentos e a motivação dos funcionários.\n", 202 | "- **🔍 Transparência**: A transparência na divulgação da remuneração dos executivos reforça a confiança dos stakeholders na governança corporativa da empresa.\n", 203 | "- **📈 Reputação e Confiabilidade**: Empresas que mantêm uma relação justa entre a remuneração dos executivos e a mediana dos salários dos funcionários são vistas de forma mais positiva por clientes, investidores e reguladores.\n", 204 | "\n", 205 | "### Query SQL para KPI\n", 206 | "\n", 207 | "Vamos assumir que temos uma tabela `remuneracao` com os seguintes campos:\n", 208 | "- `id`: ID do funcionário\n", 209 | "- `nome`: Nome do funcionário\n", 210 | "- `cargo`: Cargo do funcionário (executivo ou outro)\n", 211 | "- `salario`: Salário do funcionário\n", 212 | "- `data_referencia`: Data de referência do salário\n", 213 | "\n", 214 | "Para calcular a relação entre a remuneração dos executivos e a mediana dos salários dos funcionários, agregamos os salários por mês e por ano.\n", 215 | "\n", 216 | "Aqui está a query SQL para calcular essa relação:\n", 217 | "\n", 218 | "```sql\n", 219 | "WITH salarios_executivos AS (\n", 220 | " SELECT\n", 221 | " date_trunc('month', data_referencia) AS mes,\n", 222 | " AVG(salario) AS media_salario_executivos\n", 223 | " FROM\n", 224 | " remuneracao\n", 225 | " WHERE\n", 226 | " cargo = 'executivo'\n", 227 | " GROUP BY\n", 228 | " date_trunc('month', data_referencia)\n", 229 | "),\n", 230 | "mediana_salarios_funcionarios AS (\n", 231 | " SELECT\n", 232 | " mes,\n", 233 | " PERCENTILE_CONT(0.5) WITHIN GROUP (ORDER BY salario) AS mediana_salario_funcionarios\n", 234 | " FROM (\n", 235 | " SELECT\n", 236 | " date_trunc('month', data_referencia) AS mes,\n", 237 | " salario\n", 238 | " FROM\n", 239 | " remuneracao\n", 240 | " WHERE\n", 241 | " cargo != 'executivo'\n", 242 | " ) sub\n", 243 | " GROUP BY\n", 244 | " mes\n", 245 | ")\n", 246 | "SELECT\n", 247 | " se.mes,\n", 248 | " se.media_salario_executivos,\n", 249 | " msf.mediana_salario_funcionarios,\n", 250 | " COALESCE(se.media_salario_executivos / msf.mediana_salario_funcionarios, 0) AS relacao_remuneracao\n", 251 | "FROM\n", 252 | " salarios_executivos se\n", 253 | "JOIN\n", 254 | " mediana_salarios_funcionarios msf ON se.mes = msf.mes\n", 255 | "ORDER BY\n", 256 | " se.mes;\n", 257 | "```\n", 258 | "\n", 259 | "### Explicação da Query\n", 260 | "\n", 261 | "1. **CTE `salarios_executivos`**:\n", 262 | " - Calcula a média dos salários dos executivos por mês.\n", 263 | "\n", 264 | "2. **CTE `mediana_salarios_funcionarios`**:\n", 265 | " - Calcula a mediana dos salários dos funcionários (excluindo executivos) por mês.\n", 266 | "\n", 267 | "3. **Seleção Final**:\n", 268 | " - Junta as médias dos salários dos executivos e as medianas dos salários dos funcionários por mês e calcula a relação entre elas.\n", 269 | "\n", 270 | "No contexto deste KPI, \"relação\" de remuneração refere-se à proporção entre a remuneração média dos executivos e a mediana dos salários dos funcionários. Essa métrica é usada para avaliar a disparidade salarial dentro da empresa.\n", 271 | "\n", 272 | "### Explicação Detalhada\n", 273 | "\n", 274 | "- **media_salario_executivos**: A média dos salários dos executivos da empresa para um determinado mês.\n", 275 | "- **mediana_salario_funcionarios**: A mediana dos salários dos funcionários (excluindo executivos) para o mesmo mês. A mediana é o valor central que separa a metade superior da metade inferior dos dados salariais, fornecendo uma visão mais estável do salário típico dos funcionários, menos suscetível a valores extremos (outliers).\n", 276 | "- **relacao_remuneracao**: A razão entre a média dos salários dos executivos e a mediana dos salários dos funcionários. Esta relação é calculada dividindo-se a média dos salários dos executivos pela mediana dos salários dos funcionários.\n", 277 | "\n", 278 | "Por exemplo, se a média dos salários dos executivos em um mês é `R$50.000` e a mediana dos salários dos funcionários é `R$3.000` , a relação de remuneração é:\n", 279 | "\n", 280 | "Relação de remuneração = media_salario_executivos / mediana_salario_funcionarios = 16.67\n", 281 | "\n", 282 | "Isso significa que a média dos salários dos executivos é 16.67 vezes maior do que a mediana dos salários dos funcionários." 283 | ], 284 | "metadata": { 285 | "id": "crYwaIuZpoHE" 286 | } 287 | }, 288 | { 289 | "cell_type": "markdown", 290 | "source": [ 291 | "# 📌 **Transparência e Divulgação: Índice de transparência em relatórios e divulgações públicas**\n", 292 | "\n", 293 | "**📄 Transparência e Divulgação**\n", 294 | "\n", 295 | "**Descrição**:\n", 296 | "Este KPI mede o índice de transparência em relatórios e divulgações públicas da empresa. Ele reflete o compromisso da empresa com a divulgação precisa, completa e oportuna de informações relevantes para os stakeholders.\n", 297 | "\n", 298 | "**Importância para o departamento ESG e para a empresa**:\n", 299 | "- **🔍 Confiança e Credibilidade**: A transparência nas divulgações públicas aumenta a confiança dos stakeholders na empresa.\n", 300 | "- **🛡️ Redução de Riscos**: A divulgação completa e precisa de informações reduz os riscos de mal-entendidos e litígios.\n", 301 | "- **📈 Reputação e Marca**: Empresas que adotam práticas de transparência são vistas de forma mais positiva no mercado.\n", 302 | "- **📊 Conformidade Regulamentar**: Atender às normas e regulamentações de divulgação é crucial para a conformidade e para evitar sanções.\n", 303 | "\n", 304 | "O \"índice de transparência\" é uma métrica que pode ser atribuída por uma variedade de fontes, dependendo do contexto e das práticas específicas da empresa. Em geral, este índice é avaliado com base em vários critérios que refletem a qualidade, a precisão e a abrangência das informações divulgadas pela empresa. Aqui estão algumas maneiras pelas quais o índice de transparência pode ser atribuído e os critérios utilizados para sua avaliação:\n", 305 | "\n", 306 | "### Fontes que Podem Atribuir o Índice de Transparência\n", 307 | "\n", 308 | "1. **Auditores Internos**:\n", 309 | " - A equipe de auditoria interna da empresa pode avaliar a transparência dos relatórios e divulgações com base em critérios pré-estabelecidos.\n", 310 | "\n", 311 | "2. **Auditores Externos**:\n", 312 | " - Firmas de auditoria externa podem realizar avaliações independentes da transparência dos relatórios financeiros e de sustentabilidade.\n", 313 | "\n", 314 | "3. **Agências de Classificação e Avaliação**:\n", 315 | " - Agências especializadas em ESG (Environmental, Social, and Governance) podem avaliar a transparência e a qualidade das divulgações públicas da empresa.\n", 316 | "\n", 317 | "4. **Consultorias**:\n", 318 | " - Consultorias especializadas em governança corporativa e sustentabilidade podem ser contratadas para avaliar e atribuir um índice de transparência.\n", 319 | "\n", 320 | "5. **Stakeholders**:\n", 321 | " - Feedback de investidores, analistas financeiros e outros stakeholders pode ser usado para avaliar a transparência das divulgações.\n", 322 | "\n", 323 | "### Critérios para Avaliação do Índice de Transparência\n", 324 | "\n", 325 | "1. **Qualidade da Informação**:\n", 326 | " - Clareza, precisão e detalhamento das informações divulgadas.\n", 327 | " - Coerência e consistência das informações ao longo do tempo.\n", 328 | "\n", 329 | "2. **Abrangência**:\n", 330 | " - Cobertura de todos os aspectos relevantes, incluindo financeiros, operacionais, ambientais, sociais e de governança.\n", 331 | " - Inclusão de informações sobre riscos e oportunidades.\n", 332 | "\n", 333 | "3. **Aderência a Normas e Padrões**:\n", 334 | " - Conformidade com normas e padrões de relatórios financeiros (por exemplo, IFRS, GAAP) e de sustentabilidade (por exemplo, GRI, SASB).\n", 335 | "\n", 336 | "4. **Facilidade de Acesso**:\n", 337 | " - Disponibilidade das informações em plataformas acessíveis ao público.\n", 338 | " - Uso de linguagem clara e compreensível para um público amplo.\n", 339 | "\n", 340 | "5. **Pontualidade**:\n", 341 | " - Atualização regular e tempestiva das informações divulgadas.\n", 342 | " - Disponibilidade de relatórios periódicos (trimestrais, anuais).\n", 343 | "\n", 344 | "6. **Verificabilidade**:\n", 345 | " - Possibilidade de verificação independente das informações divulgadas.\n", 346 | " - Uso de auditorias internas e externas para validar as informações.\n", 347 | "\n", 348 | "### Exemplo de Avaliação do Índice de Transparência\n", 349 | "\n", 350 | "Suponha que uma empresa publique um relatório de sustentabilidade trimestralmente. A equipe de auditoria interna avalia cada relatório com base nos seguintes critérios e pontua cada um deles de 0 a 20, totalizando um índice de transparência de 100 pontos:\n", 351 | "\n", 352 | "1. **Qualidade da Informação (0-20)**\n", 353 | "2. **Abrangência (0-20)**\n", 354 | "3. **Aderência a Normas e Padrões (0-20)**\n", 355 | "4. **Facilidade de Acesso (0-20)**\n", 356 | "5. **Pontualidade (0-20)**\n", 357 | "\n", 358 | "Um relatório avaliado pode ter as seguintes pontuações:\n", 359 | "- Qualidade da Informação: 18\n", 360 | "- Abrangência: 17\n", 361 | "- Aderência a Normas e Padrões: 20\n", 362 | "- Facilidade de Acesso: 19\n", 363 | "- Pontualidade: 18\n", 364 | "\n", 365 | "Totalizando um índice de transparência de:\n", 366 | "\\[ 18 + 17 + 20 + 19 + 18 = 92 \\]\n", 367 | "\n", 368 | "\n", 369 | "### Query SQL\n", 370 | "\n", 371 | "Vamos assumir que temos uma tabela `relatorios_transparencia` com os seguintes campos:\n", 372 | "- `id`: ID do relatório\n", 373 | "- `data_relatorio`: Data do relatório\n", 374 | "- `indice_transparencia`: Índice de transparência do relatório (em uma escala de 0 a 100)\n", 375 | "\n", 376 | "Para calcular o índice de transparência, agregamos os índices de transparência por mês e por ano.\n", 377 | "\n", 378 | "Aqui está a query SQL para calcular o índice de transparência em relatórios e divulgações públicas:\n", 379 | "\n", 380 | "```sql\n", 381 | "WITH transparencia_mensal AS (\n", 382 | " SELECT\n", 383 | " date_trunc('month', data_relatorio) AS mes,\n", 384 | " AVG(indice_transparencia) AS indice_transparencia_mensal\n", 385 | " FROM\n", 386 | " relatorios_transparencia\n", 387 | " GROUP BY\n", 388 | " date_trunc('month', data_relatorio)\n", 389 | "),\n", 390 | "transparencia_anual AS (\n", 391 | " SELECT\n", 392 | " date_trunc('year', data_relatorio) AS ano,\n", 393 | " AVG(indice_transparencia) AS indice_transparencia_anual\n", 394 | " FROM\n", 395 | " relatorios_transparencia\n", 396 | " GROUP BY\n", 397 | " date_trunc('year', data_relatorio)\n", 398 | ")\n", 399 | "SELECT\n", 400 | " tm.mes,\n", 401 | " tm.indice_transparencia_mensal,\n", 402 | " ta.indice_transparencia_anual\n", 403 | "FROM\n", 404 | " transparencia_mensal tm\n", 405 | "JOIN\n", 406 | " transparencia_anual ta ON date_trunc('year', tm.mes) = ta.ano\n", 407 | "ORDER BY\n", 408 | " tm.mes;\n", 409 | "```\n", 410 | "\n", 411 | "### Explicação da Query\n", 412 | "\n", 413 | "1. **CTE `transparencia_mensal`**:\n", 414 | " - Calcula a média dos índices de transparência dos relatórios por mês.\n", 415 | "\n", 416 | "2. **CTE `transparencia_anual`**:\n", 417 | " - Calcula a média dos índices de transparência dos relatórios por ano.\n", 418 | "\n", 419 | "3. **Seleção Final**:\n", 420 | " - Junta os índices de transparência mensais e anuais, permitindo a comparação e análise dos valores ao longo do tempo.\n" 421 | ], 422 | "metadata": { 423 | "id": "TD0LEnrLpov8" 424 | } 425 | }, 426 | { 427 | "cell_type": "markdown", 428 | "source": [ 429 | "# 📌 **Engajamento dos Stakeholders: Número de interações significativas com stakeholders**\n", 430 | "\n", 431 | "**📣 Engajamento dos Stakeholders**\n", 432 | "\n", 433 | "**Descrição**:\n", 434 | "Este KPI mede o número de interações significativas com stakeholders em um determinado período. Ele reflete o compromisso da empresa com a comunicação e o envolvimento de partes interessadas, incluindo clientes, fornecedores, investidores, funcionários, comunidade e reguladores.\n", 435 | "\n", 436 | "**Importância para o departamento ESG e para a empresa**:\n", 437 | "- **🌐 Conexão e Colaboração**: Manter um diálogo aberto com stakeholders promove a colaboração e o entendimento mútuo.\n", 438 | "- **🛡️ Gestão de Riscos**: O feedback dos stakeholders ajuda a identificar e mitigar riscos potenciais.\n", 439 | "- **📈 Reputação e Marca**: Empresas que se envolvem ativamente com seus stakeholders são vistas de forma mais positiva e confiável.\n", 440 | "- **🔍 Transparência e Confiabilidade**: Interações significativas demonstram transparência e comprometimento com as expectativas dos stakeholders.\n", 441 | "\n", 442 | "### Query SQL para KPI\n", 443 | "\n", 444 | "Vamos assumir que temos uma tabela `interacoes_stakeholders` com os seguintes campos:\n", 445 | "- `id`: ID da interação\n", 446 | "- `data_interacao`: Data da interação\n", 447 | "- `tipo_stakeholder`: Tipo de stakeholder (cliente, fornecedor, investidor, funcionário, comunidade, regulador)\n", 448 | "- `descricao_interacao`: Descrição da interação\n", 449 | "\n", 450 | "Para calcular o número de interações significativas com stakeholders, agrupamos as interações por mês e por ano.\n", 451 | "\n", 452 | "Aqui está a query SQL para calcular o número de interações significativas com stakeholders:\n", 453 | "\n", 454 | "```sql\n", 455 | "WITH interacoes_mensais AS (\n", 456 | " SELECT\n", 457 | " date_trunc('month', data_interacao) AS mes,\n", 458 | " tipo_stakeholder,\n", 459 | " COUNT(DISTINCT id) AS total_interacoes_mensal\n", 460 | " FROM\n", 461 | " interacoes_stakeholders\n", 462 | " GROUP BY\n", 463 | " date_trunc('month', data_interacao), tipo_stakeholder\n", 464 | "),\n", 465 | "interacoes_anuais AS (\n", 466 | " SELECT\n", 467 | " date_trunc('year', data_interacao) AS ano,\n", 468 | " tipo_stakeholder,\n", 469 | " COUNT(DISTINCT id) AS total_interacoes_anual\n", 470 | " FROM\n", 471 | " interacoes_stakeholders\n", 472 | " GROUP BY\n", 473 | " date_trunc('year', data_interacao), tipo_stakeholder\n", 474 | ")\n", 475 | "SELECT\n", 476 | " im.mes,\n", 477 | " im.tipo_stakeholder,\n", 478 | " im.total_interacoes_mensal,\n", 479 | " ia.total_interacoes_anual\n", 480 | "FROM\n", 481 | " interacoes_mensais im\n", 482 | "JOIN\n", 483 | " interacoes_anuais ia ON date_trunc('year', im.mes) = ia.ano AND im.tipo_stakeholder = ia.tipo_stakeholder\n", 484 | "ORDER BY\n", 485 | " im.mes, im.tipo_stakeholder;\n", 486 | "```\n", 487 | "\n", 488 | "### Explicação da Query\n", 489 | "\n", 490 | "1. **CTE `interacoes_mensais`**:\n", 491 | " - Agrupa as interações significativas por mês e tipo de stakeholder, calculando o total de interações mensais por tipo de stakeholder.\n", 492 | "\n", 493 | "2. **CTE `interacoes_anuais`**:\n", 494 | " - Agrupa as interações significativas por ano e tipo de stakeholder, calculando o total de interações anuais por tipo de stakeholder.\n", 495 | "\n", 496 | "3. **Seleção Final**:\n", 497 | " - Junta os totais mensais e anuais das interações por tipo de stakeholder, permitindo a comparação e análise dos valores ao longo do tempo." 498 | ], 499 | "metadata": { 500 | "id": "cttRGIDDppUc" 501 | } 502 | } 503 | ] 504 | } -------------------------------------------------------------------------------- /Images/thumbnail.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/tsffarias/data-analysis-queries/dda34db07871feb1a083eafdfeb0194362efd256/Images/thumbnail.jpg -------------------------------------------------------------------------------- /Prompts/Prompt (Analise de Dados Exploratória).txt: -------------------------------------------------------------------------------- 1 | Prompts: 2 | "Tell me more about the dataset, for each column give me a brief description." 3 | "Perform descriptive statistics on each column" 4 | "Perform descriptive statistics on each column. For this, group numeric and non-numeric columns in different tables with each column as a row." 5 | "Perform Exploratory Data Analysis on each of these columns. 6 | "Provide an appropriate visualization to represent the content of each column. For example, use a histogram for numeric columns." 7 | 8 | 9 | ** Prompt melhorado ** 10 | Você é um ANALISTA DE DADOS especialista. Sua tarefa é REALIZAR uma ANÁLISE ABRANGENTE DE DADOS no conjunto de dados de vendas fornecido. 11 | 12 | Siga esses passos: 13 | 14 | 1 - Ler o arquivo enviado e fornecer uma BREVE DESCRIÇÃO para cada coluna do conjunto de dados de vendas. 15 | 16 | 2 - REALIZAR ESTATÍSTICAS DESCRITIVAS em cada coluna. Para isso, SEPARE colunas numéricas e não numéricas em tabelas diferentes, com cada coluna representada como uma linha. 17 | 18 | 3 - REALIZE ANÁLISE EXPLORATÓRIA DE DADOS para cada uma dessas colunas. 19 | 20 | 4 - CRIE VISUALIZAÇÕES apropriadas para representar o conteúdo de cada coluna, como usar histogramas para colunas numéricas. 21 | 22 | Por entregar uma SOLUÇÃO que supere as expectativas, vou dar uma gorjeta de $300K! 23 | 24 | Agora respire fundo e resolva esse problema PASSO A PASSO. -------------------------------------------------------------------------------- /Prompts/Prompt (Business Intelligence - Listar as melhores estratégias em uma área).txt: -------------------------------------------------------------------------------- 1 | ** Listar as melhores estratégias de inteligencia de mercado para uma área especifica ** 2 | Como um especialista em Inteligencia de Mercado, liste quais seriam as melhores "estratégias de mercado" da área de vendas para uma empresa de restaurantes e bares. 3 | 4 | 5 | 6 | ** Prompt usando magicpromts ** 7 | You are an Expert in MARKETING STRATEGIES for the HOSPITALITY INDUSTRY. Your task is to IDENTIFY and DESCRIBE the BEST market strategies specifically tailored for a business in the restaurant and bar sector. 8 | 9 | Follow these steps to complete your task: 10 | 11 | 1. CONDUCT a thorough analysis of the current trends and consumer behaviors in the restaurant and bar industry. 12 | 2. IDENTIFY key factors that influence customer decisions such as location, menu selection, customer service, and ambiance. 13 | 3. DEVELOP a list of MARKETING STRATEGIES that leverage these factors to attract and retain customers. 14 | 4. FOCUS on innovative approaches like social media campaigns, loyalty programs, community events, and collaborations with local businesses. 15 | 5. PROVIDE examples of how these strategies can be implemented effectively to enhance visibility and increase sales. 16 | 6. ENSURE each strategy is backed by actionable steps that a restaurant or bar can undertake immediately. 17 | 18 | You MUST consider both traditional methods and digital innovations when compiling your list of strategies. 19 | 20 | Remember, I’m going to tip $300K for a BETTER SOLUTION! 21 | 22 | Now Take a Deep Breath. -------------------------------------------------------------------------------- /Prompts/ToT (prompt de batalha de argumentos de especialistas).txt: -------------------------------------------------------------------------------- 1 | Imagine three different experts are answering this question. 2 | All experts will write down 1 step of their thinking, then share it with the group. 3 | Then all experts will go on to the next step, etc. 4 | If any expert realises they're wrong at any point then they leave. 5 | The question is... 6 | 7 | Como criar um roadmap para me tornar um Analista de Dados Senior? 8 | 9 | * _____________ * 10 | 11 | Depos do chatgpt rodar, digite apenas: 12 | Continue 13 | 14 | * ___________ * 15 | 16 | Depos do chatgpt rodar, digite apenas: 17 | Continue 18 | -------------------------------------------------------------------------------- /README.md: -------------------------------------------------------------------------------- 1 |

2 | 3 |

4 | 5 |

📊 Repositório de Consultas SQL para Analistas de Dados

6 | 7 | > Este repositório foi cuidadosamente criado para fornecer uma extensa coleção de consultas SQL que visam facilitar o trabalho dos analistas de dados em diversas áreas de uma empresa, incluindo marketing, logística, comercial, financeiro, recursos humanos e muito mais. 8 | 9 | --- 10 | 11 | 🎯 **Objetivo:** 12 | O objetivo principal deste repositório é oferecer uma fonte confiável de consultas SQL prontas para uso, permitindo que os analistas de dados economizem tempo e esforço na criação de consultas complexas. As consultas foram elaboradas para abordar uma variedade de cenários comuns enfrentados pelos analistas de dados em seu dia a dia. 13 | 14 | 💡 **Utilidade:** 15 | - **Eficiência no Trabalho:** As consultas fornecidas permitem que os analistas de dados executem tarefas de análise de dados de forma mais eficiente, liberando tempo para se concentrarem em análises mais avançadas e estratégicas. 16 | - **Padronização:** Este repositório promove a padronização das consultas SQL, garantindo consistência e uniformidade nos processos de análise de dados em toda a organização. 17 | - **Aprendizado e Desenvolvimento:** Além de servir como uma ferramenta prática, este repositório também pode ser uma valiosa fonte de aprendizado para analistas de dados em desenvolvimento, oferecendo exemplos práticos de consultas SQL em diversos contextos empresariais. 18 | 19 | 🚀 **Como Usar:** 20 | Para utilizar este repositório, basta navegar pelos diretórios correspondentes às áreas funcionais desejadas e selecionar a consulta SQL relevante para a sua necessidade. As consultas estão devidamente documentadas e acompanhadas de exemplos para facilitar a compreensão e a aplicação. 21 | 22 | 🔍 **Contribuições:** 23 | Estamos abertos a contribuições da comunidade de analistas de dados! Se você tiver consultas SQL úteis que gostaria de compartilhar ou sugestões para melhorias, sinta-se à vontade para enviar um pull request. Juntos, podemos expandir e aprimorar este repositório para beneficiar toda a comunidade de análise de dados. 24 | 25 | Sinta-se à vontade para explorar, utilizar e contribuir para este repositório, e que ele possa ser uma ferramenta valiosa em sua jornada como analista de dados! 26 | 27 | --- 28 | ## **Integrantes** 29 | - [Thiago Silva](https://www.linkedin.com/in/thiagosilvafarias/) 30 | --------------------------------------------------------------------------------