SQL Dojo Beta

Bibliothek

Die Muster, Fallen und Schlüsselwörter von SQL und Analytics Engineering, jeweils mit den Übungen dazu.

Muster15

Muster

Anti-Join

Die Zeilen einer Tabelle, die in einer anderen keinen Treffer haben: Kunden, die nie bestellt haben.
Muster

Arbeitstage zählen

Die Arbeitstage einmal aufbauen (kein Wochenende, kein Feiertag) und sie dann zwischen zwei Daten zählen.
Muster

Aufteilung mit Rest

Einen Betrag nach Gewichten auf Zeilen verteilen, auf den Cent gerundet, mit dem Rest auf einer gewählten Zeile, damit die Teile genau aufgehen.
Muster

Ein Histogramm in SQL

Werte pro Klasse fester Breite zählen und dabei die leeren Klassen behalten.
Muster

Einen Änderungsstrom anwenden

Einen Stapel von Änderungen auf die letzte pro Schlüssel reduzieren, Löschungen eingeschlossen, und ihn dann mit einem einzigen MERGE anwenden.
Muster

Einen Graphen ohne Schleifen durchlaufen

Eine rekursive Abfrage über Verbindungen, die Schleifen bilden können, muss ihren Pfad mitführen und das erneute Besuchen eines Knotens verweigern.
Muster

Gaps and Islands (Serien)

Aufeinanderfolgende Tage (oder Zahlen) zu Läufen gruppieren: Serien, Sitzungen, Zeiträume.
Muster

Gleichzeitigkeitsspitze

Wie viele Dinge höchstens gleichzeitig aktiv waren: +1 bei jedem Beginn, −1 bei jedem Ende, dann eine laufende Summe.
Muster

Invarianten als Tests

Eine Regel, die für jede Zeile oder zwischen einem Modell und seiner Quelle gelten muss, geschrieben als „die Zeilen, die sie verletzen“.
Muster

Laufende Summe

Eine Kennzahl von der ersten bis zur aktuellen Zeile aufsummieren.
Muster

Quarantänetabelle

Fehlerhafte Zeilen kommen in eine eigene Tabelle, zusammen mit der Regel, die sie verletzen, statt herausgefiltert und vergessen zu werden.
Muster

Semi-Join

Die Zeilen, die mindestens einen Treffer haben, jede einmal behalten.

Falle9

Falle

Das Simpson-Paradoxon

Eine Gruppe kann in jedem Segment besser und insgesamt schlechter sein, wenn die Segmente unterschiedlich gewichtet sind.
Falle

Erst umrechnen, dann abschneiden

Eine UTC-Zeit in Tage, Stunden oder Monate zu schneiden, ergibt UTC-Tage: Rechnen Sie zuerst in die Zeitzone des Lesers um.
Falle

Join-Fan-out

Ein Join mit zwei 1:n-Tabellen vervielfacht die Zeilen, und die Summen wachsen mit.
Falle

Noch nicht beobachtbar

Ein Ergebnis, das noch keine Zeit hatte einzutreten, ist unbekannt, nicht null: Junge Kohorten und der laufende Zeitraum sehen wie ein Einbruch aus.
Falle

NOT IN mit einem NULL

Ein einziges NULL in der Liste, und NOT IN liefert überhaupt keine Zeilen.
Falle

Schmutzige Daten

Eine unsaubere Datei löst keinen Fehler aus: Jede Abfrage läuft, und die Antworten sind falsch. Prüfen Sie eine neue Tabelle, bevor Sie ihr vertrauen.
Falle

Soft Delete und NULL

WHERE NOT is_deleted entfernt auch die Zeilen, in denen das Flag NULL ist.

Schlüsselwort2

Schlüsselwort

LEFT JOIN

Jede Zeile der linken Tabelle behalten, auch wenn rechts nichts passt.
Schlüsselwort

MAX_BY und MIN_BY

Der Wert einer Spalte in der Zeile, in der eine andere Spalte am größten (oder kleinsten) ist, in einem einfachen GROUP BY.

Kennzahl5

Kennzahl

Eine Veränderung erklären

Die Veränderung einer Kennzahl in Teile zerlegen, die sich zu ihr addieren: Volumen gegen Wert, Mix gegen Quote, dann nach Segment.
Kennzahl

Sample Ratio Mismatch

Prüfen Sie vor dem Auswerten eines Experiments, dass seine Gruppen die vorgesehenen Größen haben.
Kennzahl

Stornoquote

Stornierte Bestellungen geteilt durch alle Bestellungen, in Prozent.
Kennzahl

Umsatz

Eine Definition für den ganzen Coffee Shop: quantity * unit_price der Bestellpositionen, stornierte Bestellungen ausgenommen.

Modellierung4

Modellierung

Staging, Intermediate, Marts

Jede Definition lebt in einer Schicht: Namen und Typen im Staging, gemeinsame Logik in Intermediate-Modellen, Geschäftsentitäten in Marts.