◯ Gratis: 5 användningar/dag • Återställs om 16h 13m
Utveckling & Teknisk

SQL‑frågegenerator

Beskriv vad du behöver på enkel engelska och få en korrekt, läsbar SQL‑fråga för PostgreSQL, MySQL, SQLite, SQL Server, BigQuery eller Snowflake — med hänsyn till ditt schema, med varje klausul förklarad och anteckningar om index och prestanda.

Läs mer

SQL‑frågegeneratorn omvandlar en fråga — 'månatlig intäkt per land för 2025, endast kunder med mer än tre beställningar' — till en fråga skriven för den databas du använder: PostgreSQL, MySQL och MariaDB, SQLite, SQL Server, BigQuery eller Snowflake. Klistra in dina tabeller och kolumner så använder frågan exakt de namnen; lämna schemat tomt så listar den de antaganden den gjort. Du väljer stil (läsbara CTE‑s, kompakt eller analytisk med fönsterfunktioner) och hur mycket förklaring du vill ha, och varje svar avslutas med resultatets struktur och de index som skulle göra det snabbt. Den skriver aldrig destruktiva uttalanden om du inte begär det.

0 / 4000
0 / 10000

✓ Gratis att använda — ingen registrering, inget kreditkort.

Alla målgrupper

Månatlig intäkt per land, endast aktiva kunder

En finansiell rapport med ett HAVING‑liknande kundfilter

Visa förhandsvisning av in- och utdata

Indata

Vad ska frågan returnera?
Monthly revenue per country for 2025, counting only customers who placed more than 3 orders in 2025. Sort by month, then revenue descending.
Tabeller och kolumner (valfritt)
orders(id, customer_id, total_cents integer, created_at timestamp) customers(id, country text, signup_at timestamp)
SQL‑dialekt
PostgreSQL
Frågestil
Läsbar (CTE‑er, en klausul per rad)
Förklaring
Kort

Utdata (utdrag)

```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 används som givet.**

CTE:n hittar kunder med mer än tre beställningar år 2025; huvudfrågan behåller endast deras beställningar, trunkerar varje beställning till sin månad och summerar intäkterna per månad och land. Datumintervallet är halvöppet så den 31 december räknas en gång…
Utvecklare

Senaste beställning per kund

En fönsterfunktion‑fråga som ersätter en korrelerad subquery

Visa förhandsvisning av in- och utdata

Indata

Vad ska frågan returnera?
For every customer, their most recent order with its total and date.
Tabeller och kolumner (valfritt)
orders(id, customer_id, total_cents integer, created_at timestamp) customers(id, email text)
SQL‑dialekt
MySQL / MariaDB
Frågestil
Analytisk (fönsterfunktioner där det är användbart)
Förklaring
Detaljerad (klausul för klausul)

Utdata (utdrag)

```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 används som givet.**

| Klausul | Vad den gör |
|---|---|
| `ROW_NUMBER() OVER (PARTITION BY … ORDER BY created_at DESC, id DESC)` | numrerar varje kunds beställningar nyast först; id‑tiebreaken gör resultatet deterministiskt |
| `JOIN ranked … AND r.rn = 1` | behåller exakt en rad per kund |…

Dina SQL‑frågegenerator-resultat visas här

Förvänta dig rena kodblock med kommentarer, plus en kort förklaring av vad som ändrats.

Hur man använder SQL‑frågegenerator

  1. Skriv frågan på det sätt du skulle fråga en kollega: vilka rader, vilka filter, vilken gruppering, vilken sortering.
  2. Klistra in dina tabeller och kolumner om du har dem — en tabell per rad med dess kolumner i parenteser. Frågan använder sedan dina faktiska namn och kräver ingen redigering.
  3. Välj den dialekt du kör; datumfunktioner, LIMIT kontra TOP och citattecken skiljer sig mellan PostgreSQL, MySQL, SQLite, SQL Server, BigQuery och Snowflake.
  4. Välj 'Detaljerad' förklaring när du lär dig eller granskar någon annans begäran, 'Endast fråga' när du redan vet vad du har efterfrågat.

Användningsfall

1

Svara på en affärsfråga från en analytiker utan att vänta på datateamet.

2

Omvandla en rapportförfrågan till en fråga som följer det faktiska schemat i lagret.

3

Skriv om en långsam fråga till en läsbar CTE-version med de index den behöver.

4

Översätt en fråga från MySQL till PostgreSQL eller BigQuery vid migrering.

5

Skapa SELECT‑utdraget som visar vad en UPDATE eller DELETE skulle påverka innan du kör den.

Tips för bästa resultat

  • Inkludera kolumntyperna i schemat (created_at timestamp, total_cents integer) så hanterar frågan datum och pengar korrekt.
  • Säg 'endast' och 'åtminstone' explicit — 'kunder med mer än 3 beställningar' blir en HAVING‑klausul, inte en WHERE.
  • För en instrumentpanel, be om den analytiska stilen: fönsterfunktioner undviker själv‑join som gör rapporter långsamma.
  • Läs prestandasektionen; den namnger indexet som omvandlar en fullständig tabellskanning till en uppslagning.

Vanliga frågor

Vilka databaser stöds?

PostgreSQL, MySQL och MariaDB, SQLite, SQL Server (T‑SQL), BigQuery och Snowflake. Frågan använder den dialektens egna funktioner och syntax — datumtrunkering, LIMIT eller TOP, citattecken och strängaggregering skiljer sig, och resultatet skrivs för den du har valt.

Måste jag klistra in mitt schema?

Nej, men det underlättar. Med ett schema använder frågan dina exakta tabell- och kolumnnamn och kräver ingen redigering. Utan schema antar verktyget ett minimalt rimligt schema och listar varje antagande ovanför förklaringen så att du kan korrigera det.

Kommer den att skriva en DELETE eller UPDATE?

Endast när du uttryckligen begär en modifiering. Även då omsluter den uttalandet i en transaktion och placerar SELECT‑utdraget som visar de påverkade raderna först, så att du kan kontrollera innan du bekräftar.

Hur hanterar den datum och pengar?

Datum använder dialektens inbyggda trunkerings- och jämförelsefunktioner, och intervall skrivs som halvöppna så ingen dag räknas dubbelt. Pengar som lagras som heltalscent blir heltal tills den sista divisionen, och resultatets struktur anger vilken enhet varje kolumn har.

Är frågan garanterat snabb?

Den är skriven för att vara korrekt först och läsbar sedan, och varje svar avslutas med de index som skulle göra den snabb samt de konstruktioner som skulle hindra indexanvändning. Kör den mot en realistisk datamängd innan du schemalägger den — bara din databas känner till sina statistik.

🔒
Din integritet är skyddad

Vi sparar din inmatning och resultatet i högst 90 dagar för att driva tjänsten, förhindra missbruk och, om du är inloggad, visa din historik. De behandlas av de AI-leverantörer som anges i vår integritetspolicy. Vi säljer dem inte.

Relaterade verktyg

Prova den här agenten

VarumärkesbyggareGenerera varumärkesnamn, skapa en slogan, skriv din varumärkeshistoria och definiera varumärkesriktlinjer.Prova den här agenten →

Relaterat arbetsflöde

Skapa en lång videoIdé → manus → miniatyrbild → ladda upp metadata i en sessionKör arbetsflöde →

Läs mer