◯ Zdarma: 5 použití/den • Resetuje se za 16h 13m
Vývoj & Technika

Generátor SQL dotazů

Popište, co potřebujete v prostém angličtině, a získáte správný, čitelný SQL dotaz pro PostgreSQL, MySQL, SQLite, SQL Server, BigQuery nebo Snowflake — s ohledem na váš schéma, s vysvětlením každé klauzule a poznámkami o indexech a výkonu.

Zjistit více

Generátor SQL dotazů převádí otázku — „měsíční příjmy podle země pro rok 2025, pouze zákazníci s více než třemi objednávkami“ — na dotaz napsaný pro databázi, kterou používáte: PostgreSQL, MySQL a MariaDB, SQLite, SQL Server, BigQuery nebo Snowflake. Vložte své tabulky a sloupce a dotaz použije přesně tato jména; pokud schéma necháte prázdné, uvede předpoklady, které učinil. Vyberete si styl (čitelné CTE, kompaktní nebo analytický s okenními funkcemi) a míru vysvětlení, a každá odpověď končí popisem tvaru výsledku a indexy, které by jej urychlily. Nikdy nevytváří destruktivní příkazy, pokud o to nepožádáte.

0 / 4000
0 / 10000

✓ Zdarma — bez registrace, bez platební karty.

Pro všechny

Měsíční příjem podle země, pouze aktivní zákazníci

Finanční report s filtrem zákazníků ve stylu HAVING

Zobrazit náhled vstupu a výstupu

Vstup

Co by měl dotaz vracet?
Monthly revenue per country for 2025, counting only customers who placed more than 3 orders in 2025. Sort by month, then revenue descending.
Tabulky a sloupce (volitelné)
orders(id, customer_id, total_cents integer, created_at timestamp) customers(id, country text, signup_at timestamp)
SQL dialekt
PostgreSQL
Styl dotazu
Čitelný (CTE, jedna klauzule na řádek)
Vysvětlení
Stručné

Výstup (úryvek)

```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;
```

**Schéma použito tak, jak je.**

CTE najde zákazníky s více než třemi objednávkami v roce 2025; hlavní dotaz ponechá jen jejich objednávky, ořízne každou objednávku na měsíc a sečte příjem podle měsíce a země. Rozsah dat je polouzavřený, takže 31. prosinec se počítá jen jednou…
Vývojáři

Nejnovější objednávka na zákazníka

Dotaz s okenní funkcí nahrazující korelovaný poddotaz

Zobrazit náhled vstupu a výstupu

Vstup

Co by měl dotaz vracet?
For every customer, their most recent order with its total and date.
Tabulky a sloupce (volitelné)
orders(id, customer_id, total_cents integer, created_at timestamp) customers(id, email text)
SQL dialekt
MySQL / MariaDB
Styl dotazu
Analytický (okenní funkce, kde jsou užitečné)
Vysvětlení
Detailní (klauzule po klauzuli)

Výstup (úryvek)

```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;
```

**Schéma použito tak, jak je.**

| Klauzule | Co dělá |
|---|---|
| `ROW_NUMBER() OVER (PARTITION BY … ORDER BY created_at DESC, id DESC)` | čísluje objednávky každého zákazníka od nejnovějších; id jako rozhodující faktor dělá výsledek deterministickým |
| `JOIN ranked … AND r.rn = 1` | ponechává přesně jeden řádek na zákazníka |…

Výsledky nástroje Generátor SQL dotazů se zobrazí zde

Očekávejte přehledné bloky kódu s komentáři a krátké vysvětlení změn.

Jak používat Generátor SQL dotazů

  1. Napište otázku tak, jak byste ji položili kolegovi: jaké řádky, jaké filtry, jaké seskupení, jaké řazení.
  2. Vložte své tabulky a sloupce, pokud je máte — jedna tabulka na řádek s jejími sloupci v závorkách. Dotaz pak použije vaše skutečné názvy a nevyžaduje žádnou úpravu.
  3. Vyberte dialekt, který používáte; datumové funkce, LIMIT vs. TOP a uvozování se liší mezi PostgreSQL, MySQL, SQLite, SQL Server, BigQuery a Snowflake.
  4. Zvolte vysvětlení 'Detailní', když se učíte nebo přezkoumáváte požadavek někoho jiného, 'Pouze dotaz', když přesně víte, co jste požadovali.

Případy použití

1

Odpovězte na obchodní otázku analytika, aniž byste čekali na datový tým

2

Převěďte požadavek na report do dotazu, který respektuje skutečnou schému datového skladu

3

Přepište pomalý dotaz do čitelné verze s CTE a potřebnými indexy

4

Převěďte dotaz z MySQL do PostgreSQL nebo BigQuery při migraci

5

Navrhněte SELECT, který před spuštěním ukáže, co by UPDATE nebo DELETE ovlivnily

Tipy pro nejlepší výsledky

  • Uveďte typy sloupců ve schématu (created_at timestamp, total_cents integer) a dotaz správně zachází s daty a penězi.
  • Explicitně uveďte 'pouze' a 'alespoň' — 'customers with more than 3 orders' se stane HAVING klauzulí, ne WHERE.
  • Pro dashboard požádejte o analytický styl: okenní funkce se vyhnou self-joinům, které zpomalují reporty.
  • Přečtěte si sekci výkonu; uvádí index, který mění úplné prohledávání tabulky na vyhledávání.

Často kladené otázky

Které databáze jsou podporovány?

PostgreSQL, MySQL a MariaDB, SQLite, SQL Server (T-SQL), BigQuery a Snowflake. Dotaz používá funkce a syntaxi daného dialektu — ořezávání dat, LIMIT nebo TOP, uvozování a agregace řetězců se liší, a výstup je vytvořen pro ten, který jste vybrali.

Musím vložit své schéma?

Ne, ale pomůže to. Se schématem dotaz použije přesné názvy vašich tabulek a sloupců a nevyžaduje žádnou úpravu. Bez něj nástroj předpokládá minimální realistické schéma a nad vysvětlením vypíše všechna předpoklady, abyste je mohli opravit.

Vytvoří DELETE nebo UPDATE?

Pouze když explicitně požádáte o úpravu. I pak zabalí příkaz do transakce a nejprve vloží SELECT, který ukáže ovlivněné řádky, abyste mohli zkontrolovat před potvrzením.

Jak zachází s daty a penězi?

Data používají nativní funkce dialektu pro ořezávání a porovnávání, a intervaly jsou zapisovány jako polouzavřené, takže žádný den není započítán dvakrát. Peníze uložené jako celočíselné centy zůstávají celá čísla až do finálního dělení a výstup uvádí, v jaké jednotce je každý sloupec.

Je dotaz zaručeně rychlý?

Je napsán tak, aby byl nejprve správný a druhý čitelný, a každá odpověď končí indexy, které by ho zrychlily, a konstrukcemi, které by zabránily použití indexu. Otestujte jej na realistickém objemu dat před naplánováním — jen vaše databáze zná své statistiky.

🔒
Vaše soukromí je chráněno

Vstup i výsledek držíme nejvýš 90 dní kvůli provozu služby, ochraně před zneužitím a historii přihlášených. Zpracovávají je AI poskytovatelé uvedení v zásadách ochrany soukromí. Neprodáváme je.

Související nástroje

Vyzkoušet agenta

Budovatel značkyGenerujte názvy značek, vytvořte slogan, napište příběh značky a definujte brandové pokyny.Vyzkoušet agenta →

Související workflow

Vydat long-form videoNápad → scénář → náhled → metadata uploadu v jedné seansiSpustit workflow →

Číst více