Skip to content
ChatGPT Pode Substituir Analistas de Dados em Consultas SQL?

ChatGPT Pode Substituir Analistas de Dados? Gere Consultas SQL Complexas com Facilidade com o ChatGPT

📚

Introdução

SQL (Structured Query Language) é uma linguagem de programação amplamente utilizada para gerenciar e manipular dados em bancos de dados relacionais. Empresas e organizações precisam armazenar, recuperar e analisar dados. No entanto, escrever consultas SQL pode ser uma tarefa demorada e propensa a erros para os seres humanos, especialmente para consultas complexas ou bancos de dados grandes.

Neste artigo, exploraremos as capacidades do ChatGPT, um grande modelo de linguagem desenvolvido pela OpenAI, na geração de consultas SQL eficientes. Demonstraremos como o ChatGPT pode gerar rapidamente consultas complexas, filtrar dados com alta precisão e recuperação, e otimizar consultas existentes.

Gerar um banco de dados de exemplo

Para deixar as coisas claras, temos o seguinte banco de dados de exemplo:

Tabela 1: livros

Esta tabela conterá informações sobre todos os livros da livraria, incluindo seus títulos, autores, editoras e ISBNs.

CREATE TABLE livros (
  livro_id INT PRIMARY KEY,
  titulo VARCHAR(255),
  autor VARCHAR(255),
  editora VARCHAR(255),
  isbn VARCHAR(13)
);

Tabela 2: clientes

Esta tabela armazenará informações sobre os clientes que se registraram na livraria, incluindo seus nomes, endereços de e-mail e números de telefone.

CREATE TABLE clientes (
  cliente_id INT PRIMARY KEY,
  nome VARCHAR(255),
  email VARCHAR(255),
  telefone VARCHAR(20)
);

Tabela 3: pedidos

Esta tabela armazenará informações sobre todos os pedidos feitos pelos clientes, incluindo o cliente que fez o pedido, o(s) livro(s) pedidos, a data do pedido e o status do pedido.

CREATE TABLE pedidos (
  pedido_id INT PRIMARY KEY,
  cliente_id INT,
  livro_id INT,
  data_pedido DATE,
  status VARCHAR(20),
  FOREIGN KEY (cliente_id) REFERENCES clientes(cliente_id),
  FOREIGN KEY (livro_id) REFERENCES livros(livro_id)
);

Tabela 4: inventário

Esta tabela rastreará os níveis de inventário atual de cada livro na loja.

CREATE TABLE inventário (
  livro_id INT PRIMARY KEY,
  quantidade INT,
  FOREIGN KEY (livro_id) REFERENCES livros(livro_id)
);

Essas são apenas as tabelas básicas de que você precisa para começar a trabalhar com um banco de dados de livraria. Dependendo de suas necessidades específicas, você pode querer adicionar tabelas ou colunas adicionais a essas tabelas.

Prompt do ChatGPT para Agregação de Dados

Uma das tarefas mais comuns ao trabalhar com bancos de dados é a agregação de dados. Isso se refere a resumir dados com base em determinadas condições. Por exemplo, calcular as vendas totais para uma categoria de produto específica ou a média salarial dos funcionários de um determinado departamento. Consultas de agregação podem ser complexas de escrever e podem levar uma quantidade significativa de tempo para os seres humanos.

No entanto, o ChatGPT pode gerar essas consultas rapidamente e com precisão. Ele pode entender a estrutura dos dados e a saída desejada, e gerar uma consulta eficiente que pode recuperar as informações necessárias com um esforço mínimo. Isso reduz o risco de erros e economiza tempo para o usuário.

Aqui está um exemplo de uma consulta de agregação de dados gerada pelo ChatGPT com o seguinte prompt:

"Encontre os 5 melhores livros mais vendidos do último trimestre, juntamente com seus autores e receita total de vendas."

Para realizar essa agregação, você precisará unir as tabelas livros, pedidos e inventário, agrupar os resultados por livro e autor, filtrar pelos pedidos do último trimestre e calcular a receita total de vendas para cada livro. Por fim, você precisará ordenar os resultados por receita e limitar a saída aos 5 melhores livros.

O ChatGPT gera o seguinte código SQL para realizar isso:

SELECT livros.titulo, livros.autor, SUM(inventário.quantidade * pedidos.preço) AS receita
FROM livros
JOIN inventário ON livros.livro_id = inventário.livro_id
JOIN pedidos ON inventário.livro_id = pedidos.livro_id
WHERE pedidos.data_pedido >= DATEADD(QUARTER, -1, GETDATE())
GROUP BY livros.titulo, livros.autor
ORDER BY receita DESC
LIMIT 5;

Filtragem de Dados

Outra tarefa importante ao trabalhar com bancos de dados é a filtragem de dados. Isso se refere à extração de dados específicos de um banco de dados com base em determinados critérios. Por exemplo, extrair todas as transações feitas por clientes em uma determinada localização ou todos os funcionários que estão na empresa há mais de cinco anos. Consultas de filtragem também podem ser complexas de escrever e podem levar uma quantidade significativa de tempo para os seres humanos.

O ChatGPT pode gerar essas consultas com alta precisão e recuperação. Ele pode entender a estrutura dos dados e a saída desejada, e gerar uma consulta que pode recuperar os dados mais relevantes. Isso resulta em dados mais precisos para análises e tomadas de decisão. Aqui está um exemplo de uma consulta de filtragem de dados gerada usando o prompt do ChatGPT:

"Encontre todos os livros publicados pela 'Penguin Random House' e que estão atualmente em estoque, ordenados pelo nome do autor em ordem crescente."

Para realizar essa filtragem, você precisará unir as tabelas livros e inventário, filtrar pelos livros publicados pela 'Penguin Random House' e selecionar apenas aqueles livros que estão atualmente em estoque. Por fim, você precisará ordenar os resultados pelo nome do autor em ordem crescente.

O ChatGPT gera o seguinte código SQL para realizar esse requisito:

SELECT livros.titulo, livros.autor, livros.editora, inventário.quantidade
FROM livros
JOIN inventário ON livros.livro_id = inventário.livro_id
# Otimização de Consulta
 
Além de gerar novas consultas SQL, o ChatGPT também pode ajudar na otimização de consultas existentes. Ao analisar a estrutura e o desempenho de uma consulta, o ChatGPT pode sugerir melhorias que podem fazer a consulta funcionar de maneira mais rápida e eficiente. Por exemplo, o ChatGPT pode sugerir o uso de índices ou a reescrita da consulta para aproveitar as capacidades do banco de dados.
 
Otimizar consultas pode ser uma tarefa difícil para os humanos, especialmente para bancos de dados grandes e complexos. O ChatGPT pode simplificar essa tarefa e ajudar a melhorar o desempenho do banco de dados. Aqui está um exemplo de otimização de consulta gerada usando este prompt do ChatGPT:
 
> "Encontre os 10 principais clientes que gastaram mais em livros no último ano, juntamente com seus gastos totais e gastos médios por pedido."
 
Para otimizar esta consulta, você precisará minimizar o número de operações que o banco de dados precisa executar para produzir os resultados. Aqui estão algumas técnicas de otimização que você pode considerar:
 
1. Use índices: Adicione índices às colunas relevantes nas tabelas de clientes e pedidos para acelerar as operações de junção e filtragem.
 
2. Agregue antes de juntar: Em vez de juntar as tabelas de clientes e pedidos e depois agregar os resultados, você pode primeiro agregar a tabela de pedidos por cliente e depois juntar a tabela resultante com a tabela de clientes.
 
3. Use subconsultas: Em vez de juntar as tabelas de clientes e pedidos diretamente, você pode usar subconsultas para filtrar a tabela de pedidos por intervalo de datas e calcular os gastos totais e os gastos médios por pedido para cada cliente.
 
Aqui está um exemplo de consulta SQL que implementa essas otimizações geradas pelo ChatGPT:
 
```sql copy
SELECIONAR clientes.nome, 
       gastos_totais, 
       gastos_totais / contagem_pedidos AS gastos_medios_por_pedido
DE (
  SELECT id_cliente, 
         SUM(preco * quantidade) AS gastos_totais, 
         CONTAR(*) AS contagem_pedidos
  DE pedidos
  ONDE data_pedido >= DATEADD(ANO, -1, GETDATE())
  AGRUPAR POR id_cliente
) COMO totais_pedidos
JUNTE clientes ON totais_pedidos.id_cliente = clientes.id_cliente
ORDER BY gastos_totais DESC
LIMITE 10;

Outra opção de Análise Automatizada de Dados: RATH

Além das capacidades do ChatGPT em gerar consultas SQL eficientes, há também RATH (opens in a new tab), uma alternativa de código aberto para ferramentas de análise e visualização de dados como Tableau. RATH leva a análise de dados para o próximo nível ao automatizar o fluxo de trabalho de Análise Exploratória de Dados (EDA) com um mecanismo de Análise Aumentada.

RATH suporta uma ampla gama de fontes de dados (opens in a new tab). Aqui estão algumas das principais soluções de banco de dados às quais você pode se conectar ao RATH: MySQL, ClickHouse, Amazon Athena, Amazon Redshift, Apache Spark SQL, Apache Doris, Apache Hive, Apache Impala, Apache Kylin, Oracle e PostgreSQL.

RATH (opens in a new tab) é de código aberto. Visite o GitHub do RATH e experimente a ferramenta de Análise Automatizada de Dados (opens in a new tab) de próxima geração. Você também pode conferir a Demonstração Online do RATH como seu Playground de Análise de Dados!

Experimente o RATH (opens in a new tab)

Os recursos destacados do RATH incluem:

RecursoDescriçãoPrévia
AutoEda (opens in a new tab)Mecanismo de análise aumentada para descobrir padrões, insights e causas. Uma maneira totalmente automatizada de explorar seu conjunto de dados e visualizar seus dados com um clique.autoeda
Visualização de Dados (opens in a new tab)Crie visualização de dados multidimensionais com base na pontuação de eficácia.atuo viz
Data Wrangler (opens in a new tab)Wrangler de dados automatizado para gerar um resumo dos dados e transformação de dados.Preparação de Dados
Copiloto de Exploração de Dados (opens in a new tab)Combina exploração de dados automatizada e exploração manual. RATH funcionará como seu copiloto em ciência de dados, aprenderá seus interesses e usará mecanismo de análise aumentada para gerar recomendações relevantes para você.copiloto de dados
Pintor de Dados (opens in a new tab)Uma ferramenta interativa, intuitiva e poderosa para análise exploratória de dados colorindo diretamente seus dados, com recursos analíticos adicionais.Pintor de Dados
DashboardCrie um painel de dados interativo e bonito (incluindo um designer automático de painel que pode fornecer sugestões para seu painel).
Análise de Causa (opens in a new tab)Fornece descoberta causal e explicações para análise de relações complexas.Análise de causa

Conclusão

Em conclusão, o ChatGPT é uma ferramenta poderosa para gerar consultas SQL eficientes. Ele pode gerar rapidamente consultas complexas para agregação de dados, filtragem e otimização, reduzindo o risco de erros e economizando tempo para o usuário.

Além das capacidades do ChatGPT em gerar consultas SQL eficientes, há também o RATH, uma ferramenta de código aberto que automatiza o fluxo de trabalho de Análise Exploratória de Dados (EDA) e fornece exploração automatizada de dados, visualização e exploração semiautomática para tornar a análise de dados mais eficiente e eficaz.

📚