◯ Grátis: 5 utilizações/dia • Reinicia em 17h 10m
Desenvolvimento & Técnico

Gerador de Consultas SQL

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

Saiba mais

O Gerador de Consultas SQL transforma uma pergunta — 'receita mensal por país para 2025, apenas clientes com mais de três encomendas' — numa consulta escrita para a base de dados que utiliza: PostgreSQL, MySQL e MariaDB, SQLite, SQL Server, BigQuery ou Snowflake. Cole as suas tabelas e colunas e a consulta usa exatamente esses nomes; deixe o esquema vazio e ele indica as suposições que fez. 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. Nunca gera instruções destrutivas, a menos que as solicite.

0 / 4000
0 / 10000

✓ Grátis — sem registo 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 ao estilo HAVING

Ver pré-visualização de entrada e saída

Entrada

O que a consulta deve devolver?
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 (excerto)

```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.**

O CTE encontra clientes com mais de três encomendas em 2025; a consulta principal mantém apenas as suas encomendas, trunca cada encomenda ao seu mês e soma a receita por mês e país. O intervalo de datas é semi‑aberto, por isso 31 de dezembro é contado uma única vez…
Programadores

Última encomenda por cliente

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

Ver pré-visualização de entrada e saída

Entrada

O que a consulta deve devolver?
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 (excerto)

```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 as encomendas de cada cliente da mais recente para a mais antiga; o critério de desempate pelo id torna o resultado determinístico |
| `JOIN ranked … AND r.rn = 1` | mantém exatamente uma linha por cliente |…

Os 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 da forma como perguntaria a um colega: quais linhas, quais filtros, qual agrupamento, qual ordem.
  2. Cole as suas tabelas e colunas se as tiver — uma tabela por linha com as suas colunas entre parênteses. A consulta então usa os seus nomes reais e não precisa de edição.
  3. Escolha o dialeto que utiliza; as funções de data, LIMIT versus TOP e as aspas diferem entre PostgreSQL, MySQL, SQLite, SQL Server, BigQuery e Snowflake.
  4. Escolha a explicação 'Detalhado' quando está a aprender ou a rever o pedido de outra pessoa, 'Apenas consulta' quando já sabe o que pediu.

Casos de Uso

1

Responder a uma questão de negócio de um analista sem aguardar a equipa de dados.

2

Transformar um pedido de relatório numa consulta que respeita o esquema real do armazém.

3

Reescrever uma consulta lenta para 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 o executar.

Dicas para 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 encomendas' torna‑se uma cláusula HAVING, não WHERE.
  • Para um painel, solicite o estilo analítico: funções de janela evitam as auto‑junções que tornam os relatórios lentos.
  • Leia a secção de desempenho; ela indica o índice que transforma uma varredura completa da tabela numa pesquisa.

Perguntas Frequentes

Que bases de dados são suportadas?

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 o resultado é gerado para o que selecionou.

Tenho de colar o meu esquema?

Não, mas ajuda. Com um esquema, a consulta usa os nomes exatos das suas tabelas e colunas e não necessita 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 as possa corrigir.

Vai gerar um DELETE ou UPDATE?

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

Como lida com datas e valores?

As datas utilizam as funções nativas de truncamento e comparação do dialeto, e os intervalos são escritos como semi‑abertos para que nenhum dia seja contado duas vezes. O dinheiro armazenado como centavos inteiros permanece inteiro até à divisão final, e a forma do resultado indica em que unidade está cada coluna.

A consulta está garantida ser rápida?

É 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 contra um volume de dados realista antes de a agendar — só a sua base de dados conhece as suas estatísticas.

🔒
A Sua Privacidade Está Protegida

Guardamos a sua entrada e o resultado durante um máximo de 90 dias para operar o serviço, prevenir abusos e, se tiver sessão iniciada, mostrar o seu histórico. São processados pelos fornecedores de IA indicados na nossa Política de Privacidade. Não os vendemos.

Ferramentas relacionadas

Experimentar este agente

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

Fluxo relacionado

Publique um Vídeo de Formato LongoIdeia → guião → miniatura → metadados de upload numa só sessãoExecutar fluxo →

Ler mais