◯ Kostenlos: 5 Nutzungen/Tag • Zurückgesetzt in 16h 13m
Entwicklung & Technik

SQL-Abfrage-Generator

Beschreiben Sie, was Sie benötigen, in einfachem Englisch und erhalten Sie eine korrekte, lesbare SQL‑Abfrage für PostgreSQL, MySQL, SQLite, SQL Server, BigQuery oder Snowflake — unter Berücksichtigung Ihres Schemas, mit jeder Klausel erklärt und Hinweisen zu Indizes und Performance.

Mehr erfahren

Der SQL‑Query‑Generator wandelt eine Frage — „Monatlicher Umsatz pro Land für 2025, nur Kunden mit mehr als drei Bestellungen“ — in eine Abfrage um, die für die von Ihnen genutzte Datenbank geschrieben ist: PostgreSQL, MySQL und MariaDB, SQLite, SQL Server, BigQuery oder Snowflake. Fügen Sie Ihre Tabellen und Spalten ein und die Abfrage verwendet exakt diese Namen; lassen Sie das Schema leer und er gibt die getroffenen Annahmen an. Sie wählen den Stil (lesbare CTEs, kompakt oder analytisch mit Fensterfunktionen) und den Erklärungsumfang, und jede Antwort endet mit der Form des Ergebnisses und den Indizes, die es schnell machen würden. Destruktive Anweisungen werden niemals geschrieben, es sei denn, Sie fordern sie an.

0 / 4000
0 / 10000

✓ Kostenlos nutzbar — ohne Registrierung, ohne Kreditkarte.

Alle Zielgruppen

Monatlicher Umsatz pro Land, nur aktive Kunden

Ein Finanzbericht mit einem HAVING‑basierten Kundenfilter

Vorschau von Eingabe und Ausgabe anzeigen

Eingabe

Was soll die Abfrage zurückgeben?
Monthly revenue per country for 2025, counting only customers who placed more than 3 orders in 2025. Sort by month, then revenue descending.
Tabellen und Spalten (optional)
orders(id, customer_id, total_cents integer, created_at timestamp) customers(id, country text, signup_at timestamp)
SQL‑Dialekt
PostgreSQL
Abfragesstil
Lesbar (CTEs, eine Klausel pro Zeile)
Erklärung
Kurz

Ausgabe (Auszug)

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

**Schema wie angegeben verwendet.**

Das CTE findet Kunden mit mehr als drei Bestellungen im Jahr 2025; die Hauptabfrage behält nur deren Bestellungen, trunciert jede Bestellung auf ihren Monat und summiert den Umsatz pro Monat und Land. Der Datumsbereich ist halb offen, sodass der 31. Dezember nur einmal gezählt wird…
Entwickler

Letzte Bestellung pro Kunde

Eine Fensterfunktion‑Abfrage, die eine korrelierte Unterabfrage ersetzt

Vorschau von Eingabe und Ausgabe anzeigen

Eingabe

Was soll die Abfrage zurückgeben?
For every customer, their most recent order with its total and date.
Tabellen und Spalten (optional)
orders(id, customer_id, total_cents integer, created_at timestamp) customers(id, email text)
SQL‑Dialekt
MySQL / MariaDB
Abfragesstil
Analytisch (Fensterfunktionen, wo sinnvoll)
Erklärung
Detailliert (Klausel für Klausel)

Ausgabe (Auszug)

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

**Schema wie angegeben verwendet.**

| Klausel | Was sie tut |
|---|---|
| `ROW_NUMBER() OVER (PARTITION BY … ORDER BY created_at DESC, id DESC)` | nummeriert jede Kundenbestellung nach dem neuesten zuerst; das id‑Tie‑Breaker macht das Ergebnis deterministisch |
| `JOIN ranked … AND r.rn = 1` | behält genau eine Zeile pro Kunde |
…

Ihre SQL-Abfrage-Generator-Ergebnisse erscheinen hier

Erwarten Sie saubere Codeblöcke mit Kommentaren sowie eine kurze Erklärung der Änderungen.

Anleitung SQL-Abfrage-Generator

  1. Formuliere die Frage so, wie du sie einem Kollegen stellen würdest: welche Zeilen, welche Filter, welche Gruppierung, welche Reihenfolge.
  2. Füge deine Tabellen und Spalten ein, falls du sie hast – eine Tabelle pro Zeile mit ihren Spalten in Klammern. Die Abfrage verwendet dann deine echten Namen und muss nicht bearbeitet werden.
  3. Wähle den Dialekt, den du nutzt; Datumsfunktionen, LIMIT versus TOP und Anführungszeichen unterscheiden sich zwischen PostgreSQL, MySQL, SQLite, SQL Server, BigQuery und Snowflake.
  4. Wähle 'Detailliert' als Erklärung, wenn du lernst oder die Anfrage eines anderen prüfst, und 'Nur Abfrage', wenn du bereits weißt, was du angefordert hast.

Anwendungsfälle

1

Beantworte eine geschäftliche Frage eines Analysten, ohne auf das Data-Team warten zu müssen.

2

Wandle eine Reporting‑Anfrage in eine Abfrage um, die das echte Schema des Data‑Warehouses berücksichtigt.

3

Schreibe eine langsame Abfrage in eine lesbare CTE‑Version um, die die benötigten Indizes enthält.

4

Übersetze eine Abfrage von MySQL nach PostgreSQL oder BigQuery beim Migrieren.

5

Entwirf das SELECT, das vor der Ausführung zeigt, welche Zeilen ein UPDATE oder DELETE betreffen würde.

Tipps für beste Ergebnisse

  • Füge die Spaltentypen im Schema ein (created_at timestamp, total_cents integer) und die Abfrage verarbeitet Datum und Geld korrekt.
  • Formuliere 'nur' und 'mindestens' explizit – 'Kunden mit mehr als 3 Bestellungen' wird zu einer HAVING‑Klausel, nicht zu einer WHERE‑Klausel.
  • Für ein Dashboard frage nach dem analytischen Stil: Fensterfunktionen vermeiden die Selbst‑Joins, die Berichte verlangsamen.
  • Lies den Performance‑Abschnitt; er nennt den Index, der einen vollständigen Tabellenscan in einen Lookup verwandelt.

Häufig gestellte Fragen

Welche Datenbanken werden unterstützt?

PostgreSQL, MySQL und MariaDB, SQLite, SQL Server (T‑SQL), BigQuery und Snowflake. Die Abfrage nutzt die jeweiligen Funktionen und die Syntax des Dialekts – Datums‑Trunkierung, LIMIT oder TOP, Anführungszeichen und String‑Aggregation unterscheiden sich, und die Ausgabe wird für den von dir gewählten Dialekt erstellt.

Muss ich mein Schema einfügen?

Nein, aber es hilft. Mit einem Schema verwendet die Abfrage deine genauen Tabellen‑ und Spaltennamen und muss nicht bearbeitet werden. Ohne Schema geht das Tool von einem minimal plausiblen Schema aus und listet jede Annahme über der Erklärung auf, damit du sie korrigieren kannst.

Wird es ein DELETE oder UPDATE schreiben?

Nur wenn du ausdrücklich um eine Modifikation bittest. Dann verpackt es die Anweisung in einer Transaktion und stellt das SELECT, das die betroffenen Zeilen vorschaut, zuerst bereit, sodass du vor dem Commit prüfen kannst.

Wie geht es mit Datum und Geld um?

Datumswerte nutzen die nativen Trunkierungs‑ und Vergleichsfunktionen des Dialekts, und Bereiche werden als halb offene Intervalle geschrieben, sodass kein Tag doppelt gezählt wird. Geld, das als ganze Cent gespeichert ist, bleibt bis zur abschließenden Division ganzzahlig, und das Ergebnis‑Schema gibt an, in welcher Einheit jede Spalte vorliegt.

Ist die Abfrage garantiert schnell?

Sie ist zuerst korrekt und dann lesbar geschrieben, und jede Antwort endet mit den Indizes, die sie schnell machen würden, sowie den Konstrukten, die eine Indexnutzung verhindern würden. Führe sie mit einem realistischen Datenvolumen aus, bevor du sie planst – nur deine Datenbank kennt ihre Statistiken.

🔒
Ihre Privatsphäre ist geschützt

Wir speichern Ihre Eingabe und das Ergebnis höchstens 90 Tage lang, um den Dienst zu betreiben, Missbrauch zu verhindern und Ihnen, wenn Sie angemeldet sind, Ihren Verlauf anzuzeigen. Verarbeitet werden sie von den KI-Anbietern, die in unserer Datenschutzerklärung aufgeführt sind. Wir verkaufen sie nicht.

Ähnliche Tools

Agent testen

Marken-BuilderMarkennamen generieren, Slogan erstellen, Markenstory schreiben und Markenrichtlinien definieren.Agent testen →

Ähnlicher Workflow

Ein Longform-Video veröffentlichenIdee → Skript → Thumbnail → Upload-Metadaten in einer SessionWorkflow starten →

Mehr lesen