SQL-Abfrage aus Deiner Eigenen Frage

SQL-Abfrage aus Deiner Eigenen Frage

Seien Sie der Erste, der bewertet 0 ✍️ TextProgrammierung
AnalyseCodeerklärungprogrammierung

Prompt

Handle wie eine erfahrene Datenperson, die schon eine Nacht damit verbracht hat, einen Bericht zu reparieren, der wunderschön aussah und dieselbe Bestellung doppelt gezählt hat, und die deshalb nie eine Abfrage übergibt, ohne gleich mitzuliefern, wie man sie prüft. Kontext: Meine Datenbank ist [WELCHE DATENBANK UND VERSION - BSP: PostgreSQL 15]. Die Frage, die ich beantworten muss, ist [DIE FRAGE IN NORMALEN WORTEN, SO WIE DU SIE EINER KOLLEGIN ERZÄHLEN WÜRDEST - BSP: wie viele Neukunden im letzten Quartal mehr als einmal gekauft haben]. Das sind die Tabellen und Spalten, die ich habe, und es gibt keine anderen: [HIER JEDE TABELLE MIT IHREN SPALTEN UND TYPEN EINFÜGEN] Das Volumen ist [UNGEFÄHRE GRÖSSE - BSP: rund 2 Millionen Zeilen in Bestellungen]. Meine Berechtigung ist [WAS DU TUN DARFST - BSP: nur lesen]. Die Zeitzone der Daten ist [ZEITZONE - BSP: UTC, und ich brauche das Ergebnis in mitteleuropäischer Zeit]. Aufgabe: die Abfrage schreiben, die genau diese Frage beantwortet, in normalen Worten erklären, was sie tut, und mir geben, womit ich das Ergebnis prüfe. Regeln: 1. Verwende nur die Tabellen und Spalten, die ich aufgezählt habe. Wenn etwas fehlt, um zu antworten, sag, was fehlt, statt eine Spalte zu erfinden. 2. Schreibe nur Lesezugriff. Kein DELETE, UPDATE, DROP oder ALTER, auch nicht als auskommentierter Vorschlag. 3. Erkläre die Abfrage in normalen Worten, Block für Block, und sag, was jeder Join und jeder Filter aussortiert. Wer es liest, sollte kein SQL können müssen, um zu folgen. 4. Behandle den Nullwert absichtlich und sag, welche Entscheidung du getroffen hast: Eine Zeile ohne Wert zählt mit, fällt heraus oder wird null. 5. Achte darauf, was Zeilen dupliziert. Wenn ein Join das Ergebnis vervielfachen kann, zeig wo und zeig, wie du es vermieden hast. 6. Daten und Zeitzonen kommen in die angeforderte Zone umgerechnet heraus, und das Intervall ist explizit: Sag, ob der letzte Tag drin ist oder nicht. 7. Liefere auch eine Prüfabfrage, einfacher und über einen anderen Weg, die belegt, dass die Zahl der ersten stimmt. 8. Wenn meine Frage mehrdeutig ist, nimm die gängigste Lesart, mach weiter und sag am Ende, welche Lesart du verwendet hast und welche die andere wäre. 9. Formatiere für Menschen: eine Klausel pro Zeile, kurze Tabellenaliasse und ein Kommentar nur dort, wo sich die Zeile nicht selbst erklärt. 10. Nenne eine Sache, die die Abfrage bei dem genannten Volumen schneller machen würde, und sag auch, wann sich das nicht lohnt. Antwortformat: zuerst die fertige Abfrage in einem Codeblock, ohne Text dazwischen; dann die Erklärung in normalen Worten, Block für Block; dann die Prüfabfrage in einem weiteren Codeblock, mit einem Satz dazu, womit ihr Ergebnis übereinstimmen muss; dann die Liste dessen, was du angenommen hast; und am Ende die Anmerkung zur Performance.

So geht’s

Die Abfrage zu schreiben ist der einfache Teil. Teuer wird es, wenn du eine Woche später merkst, dass die Zahl aufgebläht war, weil ein Join Zeilen dupliziert hat, und der Bericht längst die Runde gemacht hat. Dieser Prompt liefert die Abfrage, die Erklärung in normalen Worten und eine zweite Abfrage, um die erste zu prüfen. Er funktioniert in ChatGPT, Claude und Gemini. 1. Füge die Spaltennamen mit ihren Typen ein. Ohne das erfindet die KI eine plausible Spalte und die Abfrage bricht auf der Datenbank ab. 2. Stell die Frage in normalen Worten, so wie einer Kollegin. Eine in Halb-SQL übersetzte Frage bekommt Halb-SQL zurück. 3. Nenne die Zeitzone der Daten: Sie ist die stille Ursache des Berichts, der einen Tag danebenliegt. 4. Führe die Prüfabfrage aus, bevor du die Zahl an jemanden schickst. Stimmen die beiden nicht überein, liegt der Fehler dort. 5. Lies die Liste der Annahmen: Dort steht die Entscheidung über Zeilen ohne Wert, und die verändert die Summe. Tipp: Bewahre die Abfragen, die funktioniert haben, mit der ursprünglichen Frage darüber auf. Das wird dein Wörterbuch der Datenbank.

Funktioniert mit ChatGPT Claude Gemini

Diesen Prompt bewerten

📖 Aus dem Prompteiro-Blog

Alle Beiträge ansehen →

💡 Das könnte Ihnen gefallen