◯ Grátis: 5 usos/dia • Redefine em 17h 9m
Desenvolvimento & Técnico

Gerador de Consultas SQL

Descreva o que você precisa em inglês simples e obtenha uma consulta SQL correta e legível para PostgreSQL, MySQL, SQLite, SQL Server, BigQuery ou Snowflake — respeitando seu esquema, com cada cláusula explicada e observações sobre índices e desempenho.

Saiba mais

O Gerador de Consultas SQL transforma uma pergunta — 'receita mensal por país em 2025, somente clientes com mais de três pedidos' — em uma consulta escrita para o banco de dados que você usa: PostgreSQL, MySQL e MariaDB, SQLite, SQL Server, BigQuery ou Snowflake. Cole suas tabelas e colunas e a consulta usará exatamente esses nomes; deixe o esquema vazio e ele indicará as suposições que fez. Você escolhe o estilo (CTEs legíveis, compacto ou analítico com funções de janela) e o nível de explicação desejado, e cada resposta termina com a forma do resultado e os índices que o tornariam rápido. Ele nunca gera instruções destrutivas a menos que você as solicite.

0 / 4000
0 / 10000

✓ Grátis — sem cadastro e sem cartão de crédito.

Todos os públicos

Receita mensal por país, apenas clientes ativos

Um relatório financeiro com filtro de cliente estilo HAVING

Ver prévia de entrada e saída

Entrada

O que a consulta deve retornar?
Monthly revenue per country for 2025, counting only customers who placed more than 3 orders in 2025. Sort by month, then revenue descending.
Tabelas e colunas (opcional)
orders(id, customer_id, total_cents integer, created_at timestamp) customers(id, country text, signup_at timestamp)
Dialeto SQL
PostgreSQL
Estilo da consulta
Legível (CTEs, uma cláusula por linha)
Explicação
Breve

Saída (trecho)

```sql
WITH active_customers AS (
  SELECT o.customer_id
  FROM orders AS o
  WHERE o.created_at >= DATE '2025-01-01'
    AND o.created_at <  DATE '2026-01-01'
  GROUP BY o.customer_id
  HAVING COUNT(*) > 3
)
SELECT
  DATE_TRUNC('month', o.created_at)::date AS month,
  c.country,
  SUM(o.total_cents) / 100.0            AS revenue
FROM orders AS o
JOIN active_customers AS a ON a.customer_id = o.customer_id
JOIN customers        AS c ON c.id = o.customer_id
WHERE o.created_at >= DATE '2025-01-01'
  AND o.created_at <  DATE '2026-01-01'
GROUP BY 1, 2
ORDER BY month, revenue DESC;
```

**Esquema usado como fornecido.**

A CTE encontra clientes com mais de três pedidos em 2025; a consulta principal mantém apenas seus pedidos, trunca cada pedido ao seu mês e soma a receita por mês e país. O intervalo de datas é meio‑aberto, de modo que 31 de dezembro é contado uma única vez…
Desenvolvedores

Último pedido por cliente

Uma consulta com função de janela substituindo uma subconsulta correlacionada

Ver prévia de entrada e saída

Entrada

O que a consulta deve retornar?
For every customer, their most recent order with its total and date.
Tabelas e colunas (opcional)
orders(id, customer_id, total_cents integer, created_at timestamp) customers(id, email text)
Dialeto SQL
MySQL / MariaDB
Estilo da consulta
Analítico (funções de janela quando úteis)
Explicação
Detalhado (cláusula por cláusula)

Saída (trecho)

```sql
WITH ranked AS (
  SELECT
    o.customer_id,
    o.id          AS order_id,
    o.total_cents,
    o.created_at,
    ROW_NUMBER() OVER (PARTITION BY o.customer_id ORDER BY o.created_at DESC, o.id DESC) AS rn
  FROM orders AS o
)
SELECT c.id AS customer_id, c.email, r.order_id, r.total_cents / 100.0 AS total, r.created_at
FROM customers AS c
JOIN ranked AS r ON r.customer_id = c.id AND r.rn = 1
ORDER BY r.created_at DESC;
```

**Esquema usado como fornecido.**

| Cláusula | O que faz |
|---|---|
| `ROW_NUMBER() OVER (PARTITION BY … ORDER BY created_at DESC, id DESC)` | numera os pedidos de cada cliente do mais recente ao mais antigo; o desempate pelo id torna o resultado determinístico |
| `JOIN ranked … AND r.rn = 1` | mantém exatamente uma linha por cliente |…

Seus resultados de Gerador de Consultas SQL aparecerão aqui

Espere blocos de código limpos com comentários, além de uma breve explicação do que mudou.

Como usar Gerador de Consultas SQL

  1. Escreva a pergunta como se fosse para um colega: quais linhas, quais filtros, qual agrupamento, qual ordenação.
  2. Cole suas tabelas e colunas se as tiver — uma tabela por linha com suas colunas entre colchetes. A consulta então usa seus nomes reais e não precisa de edição.
  3. Escolha o dialeto que você usa; funções de data, LIMIT versus TOP e aspas diferem entre PostgreSQL, MySQL, SQLite, SQL Server, BigQuery e Snowflake.
  4. Escolha a explicação 'Detalhado' quando estiver aprendendo ou revisando a solicitação de outra pessoa, 'Apenas consulta' quando souber o que pediu.

Casos de uso

1

Responder a uma pergunta de negócios de um analista sem aguardar a equipe de dados.

2

Transformar um pedido de relatório em uma consulta que respeita o esquema real do data warehouse.

3

Reescrever uma consulta lenta em uma versão CTE legível com os índices necessários.

4

Traduzir uma consulta de MySQL para PostgreSQL ou BigQuery ao migrar.

5

Esboçar o SELECT que antecipa o que um UPDATE ou DELETE afetaria antes de executá‑lo.

Dicas para os melhores resultados

  • Inclua os tipos de coluna no esquema (created_at timestamp, total_cents integer) e a consulta trata datas e valores corretamente.
  • Diga 'apenas' e 'pelo menos' explicitamente — 'clientes com mais de 3 pedidos' torna‑se uma cláusula HAVING, não WHERE.
  • Para um dashboard, solicite o estilo analítico: funções de janela evitam os auto‑joins que tornam os relatórios lentos.
  • Leia a seção de desempenho; ela indica o índice que transforma uma varredura completa da tabela em uma busca.

Perguntas frequentes

Quais bancos de dados são suportados?

PostgreSQL, MySQL e MariaDB, SQLite, SQL Server (T‑SQL), BigQuery e Snowflake. A consulta usa as funções e a sintaxe próprias desse dialeto — truncamento de datas, LIMIT ou TOP, aspas e agregação de strings diferem, e a saída é gerada para o que você selecionou.

Preciso colar meu esquema?

Não, mas ajuda. Com um esquema, a consulta usa os nomes exatos das tabelas e colunas e não precisa de edição. Sem ele, a ferramenta assume um esquema mínimo plausível e lista todas as suposições acima da explicação para que você possa corrigi‑las.

Ele vai gerar um DELETE ou UPDATE?

Só quando você solicitar explicitamente uma modificação. Mesmo assim, ele envolve a instrução em uma transação e coloca o SELECT que antecipa as linhas afetadas primeiro, para que você possa verificar antes de confirmar.

Como ele trata datas e valores?

Datas usam as funções nativas de truncamento e comparação do dialeto, e intervalos são escritos como meio‑abertos para que nenhum dia seja contado duas vezes. Valores armazenados como centavos inteiros permanecem inteiros até a divisão final, e o formato do resultado indica em qual unidade cada coluna está.

A consulta é garantida ser rápida?

Ela é escrita para ser correta primeiro e legível segundo, e cada resposta termina com os índices que a tornariam rápida e os constructos que impediriam o uso de índices. Execute‑a com um volume de dados realista antes de agendá‑la — só seu banco de dados conhece suas estatísticas.

🔒
Sua privacidade está protegida

Guardamos sua entrada e o resultado por até 90 dias para operar o serviço, evitar abusos e, se você estiver conectado, mostrar seu histórico. Eles são processados pelos provedores de IA listados na nossa Política de Privacidade. Não os vendemos.

Ferramentas relacionadas

Testar este agente

Construtor de MarcaGere nomes de marca, crie um slogan, escreva sua história de marca e defina diretrizes de…Testar este agente →

Fluxo relacionado

Lance um Vídeo LongoIdeia → roteiro → miniatura → fazer upload de metadados em uma única sessãoExecutar fluxo →

Leia mais