◯ Za darmo: 5 użyć/dzień • Reset za 16h 13m
Rozwój & Technika

Generator zapytań SQL

Opisz, czego potrzebujesz w prostym języku angielskim i otrzymaj poprawne, czytelne zapytanie SQL dla PostgreSQL, MySQL, SQLite, SQL Server, BigQuery lub Snowflake — z uwzględnieniem Twojego schematu, z wyjaśnieniem każdego klauzuli oraz notatkami o indeksach i wydajności.

Dowiedz się więcej

Generator zapytań SQL przekształca pytanie — „miesięczny przychód według kraju w 2025, tylko klienci z więcej niż trzema zamówieniami” — w zapytanie napisane dla wybranej bazy danych: PostgreSQL, MySQL i MariaDB, SQLite, SQL Server, BigQuery lub Snowflake. Wklej swoje tabele i kolumny, a zapytanie użyje dokładnie tych nazw; pozostaw schemat pusty, a narzędzie poda przyjęte założenia. Wybierasz styl (czytelne CTE, kompaktowy lub analityczny z funkcjami okna) oraz poziom wyjaśnienia, a każda odpowiedź kończy się opisem struktury wyniku i indeksami, które przyspieszą wykonanie. Nie generuje destrukcyjnych poleceń, chyba że o to poprosisz.

0 / 4000
0 / 10000

✓ Bezpłatne — bez rejestracji i bez karty kredytowej.

Wszyscy odbiorcy

Miesięczny przychód według kraju, tylko aktywni klienci

Raport finansowy z filtrem klientów w stylu HAVING

Zobacz podgląd danych wejściowych i wyjściowych

Dane wejściowe

Co powinno zwrócić zapytanie?
Monthly revenue per country for 2025, counting only customers who placed more than 3 orders in 2025. Sort by month, then revenue descending.
Tabele i kolumny (opcjonalnie)
orders(id, customer_id, total_cents integer, created_at timestamp) customers(id, country text, signup_at timestamp)
Dialekt SQL
PostgreSQL
Styl zapytania
Czytelny (CTE, jedna klauzula na linię)
Wyjaśnienie
Zwięzłe

Wynik (fragment)

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

**Schemat użyty tak jak podano.**

CTE znajduje klientów z więcej niż trzema zamówieniami w 2025 roku; główne zapytanie zachowuje tylko ich zamówienia, przycina każde zamówienie do miesiąca i sumuje przychód według miesiąca i kraju. Zakres dat jest półotwarty, więc 31 grudnia jest liczony raz…
Programiści

Ostatnie zamówienie każdego klienta

Zapytanie z funkcją okna zastępujące podzapytanie skorelowane

Zobacz podgląd danych wejściowych i wyjściowych

Dane wejściowe

Co powinno zwrócić zapytanie?
For every customer, their most recent order with its total and date.
Tabele i kolumny (opcjonalnie)
orders(id, customer_id, total_cents integer, created_at timestamp) customers(id, email text)
Dialekt SQL
MySQL / MariaDB
Styl zapytania
Analityczny (funkcje okna, gdy przydatne)
Wyjaśnienie
Szczegółowy (klauzula po klauzuli)

Wynik (fragment)

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

**Schemat użyty tak jak podano.**

| Klauzula | Co robi |
|---|---|
| `ROW_NUMBER() OVER (PARTITION BY … ORDER BY created_at DESC, id DESC)` | numeruje zamówienia każdego klienta od najnowszych; rozstrzygnięcie po id sprawia, że wynik jest deterministyczny |
| `JOIN ranked … AND r.rn = 1` | zachowuje dokładnie jeden wiersz na klienta |…

Twoje wyniki Generator zapytań SQL pojawią się tutaj

Spodziewaj się czytelnych bloków kodu z komentarzami oraz krótkiego wyjaśnienia zmian.

Jak używać Generator zapytań SQL

  1. Zadaj pytanie tak, jakbyś pytał współpracownika: które wiersze, jakie filtry, jakie grupowanie, w jakiej kolejności.
  2. Wklej swoje tabele i kolumny, jeśli je masz — jedna tabela na wiersz, a jej kolumny w nawiasach. Zapytanie użyje wtedy rzeczywistych nazw i nie będzie wymagało edycji.
  3. Wybierz dialekt, którego używasz; funkcje dat, LIMIT vs TOP oraz cudzysłowy różnią się między PostgreSQL, MySQL, SQLite, SQL Server, BigQuery i Snowflake.
  4. Wybierz 'Szczegółowy' wyjaśnienie, gdy się uczysz lub przeglądasz zapytanie kogoś innego, oraz 'Tylko zapytanie', gdy wiesz, czego potrzebujesz.

Przykłady użycia

1

Odpowiedz na pytanie biznesowe analityka bez czekania na zespół danych.

2

Przekształć żądanie raportowe w zapytanie, które respektuje rzeczywisty schemat hurtowni.

3

Przepisz wolne zapytanie na czytelną wersję CTE z niezbędnymi indeksami.

4

Przetłumacz zapytanie z MySQL na PostgreSQL lub BigQuery podczas migracji.

5

Sporządź SELECT, który pokaże, co UPDATE lub DELETE zmieni przed jego wykonaniem.

Porady dla najlepszych wyników

  • Dołącz typy kolumn w schemacie (created_at timestamp, total_cents integer), a zapytanie prawidłowo obsługuje daty i pieniądze.
  • Używaj wyraźnie 'tylko' i 'co najmniej' — 'klienci z więcej niż 3 zamówieniami' staje się klauzulą HAVING, a nie WHERE.
  • Dla pulpitu, poproś o styl analityczny: funkcje okienkowe unikają samodzielnych połączeń, które spowalniają raporty.
  • Przeczytaj sekcję wydajności; podaje indeks, który zamienia pełne skanowanie tabeli na wyszukiwanie.

Najczęściej zadawane pytania

Jakie bazy danych są obsługiwane?

PostgreSQL, MySQL i MariaDB, SQLite, SQL Server (T‑SQL), BigQuery i Snowflake. Zapytanie używa funkcji i składni właściwych dla tego dialektu — przycinanie dat, LIMIT lub TOP, cudzysłowy i agregacja łańcuchów różnią się, a wynik jest generowany dla wybranego dialektu.

Czy muszę wkleić mój schemat?

Nie, ale to pomaga. Z schematem zapytanie używa dokładnych nazw tabel i kolumn i nie wymaga edycji. Bez schematu narzędzie przyjmuje minimalny, prawdopodobny schemat i wymienia wszystkie założenia nad wyjaśnieniem, abyś mógł je skorygować.

Czy wygeneruje DELETE lub UPDATE?

Tylko gdy wyraźnie poprosisz o modyfikację. Nawet wtedy otacza instrukcję transakcją i najpierw umieszcza SELECT podglądający dotknięte wiersze, abyś mógł sprawdzić przed zatwierdzeniem.

Jak obsługuje daty i pieniądze?

Daty używają natywnych funkcji przycinania i porównywania dialektu, a zakresy zapisywane są jako półotwarte przedziały, więc żaden dzień nie jest liczony podwójnie. Pieniądze przechowywane jako całkowite centy pozostają liczbą całkowitą aż do ostatecznego podzielenia, a struktura wyniku wskazuje, w jakiej jednostce znajduje się każda kolumna.

Czy zapytanie jest gwarantowanie szybkie?

Zostało napisane najpierw tak, aby było poprawne, a potem czytelne, i każda odpowiedź kończy się indeksami, które przyspieszą zapytanie oraz konstrukcjami, które uniemożliwiają użycie indeksu. Uruchom je na realistycznej wielkości danych przed zaplanowaniem — tylko Twoja baza danych zna swoje statystyki.

🔒
Twoja prywatność jest chroniona

Przechowujemy Twoje dane wejściowe i wynik przez maksymalnie 90 dni, aby obsługiwać usługę, zapobiegać nadużyciom i – jeśli jesteś zalogowany – pokazywać Twoją historię. Przetwarzają je dostawcy AI wymienieni w naszej Polityce prywatności. Nie sprzedajemy ich.

Powiązane narzędzia

Wypróbuj agenta

Kreator MarkiGeneruj nazwy marek, stwórz slogan, napisz historię marki i zdefiniuj wytyczne marki.Wypróbuj agenta →

Powiązany przepływ

Saudi ZATCA Phase 2 przygotowanie e-faktury (TRN -> dwujęzyczna koperta -> QR-TLV)Zweryfikować TRN kupującego z Arabii Saudyjskiej, stworzyć envelope JSON ZATCA Phase 2 z dwujęzycznymi polami Arabic+English…Uruchom przepływ →