SQL Dojo Bêta

Bibliothèque

Les motifs, les pièges et les mots-clés du SQL et de l'analytics engineering, chacun avec les exercices qui le pratiquent.

Technique15

Technique

Anti-jointure

Les lignes d'une table sans correspondance dans une autre : les clients qui n'ont jamais commandé.
Technique

Compter les jours ouvrés

Construire les jours ouvrés une fois (ni week-end ni férié), puis les compter entre deux dates.
Technique

Cumul

Additionner une mesure de la première ligne jusqu'à la ligne courante.
Technique

Les invariants comme tests

Une règle qui doit tenir sur chaque ligne, ou entre un modèle et sa source, écrite comme « les lignes qui l'enfreignent ».
Technique

Parcourir un graphe sans boucler

Une requête récursive sur des liens qui peuvent boucler doit porter son chemin et refuser de repasser par un nœud.
Technique

Pic de simultanéité

Combien de choses étaient actives en même temps, au plus : +1 à chaque début, −1 à chaque fin, puis un total cumulé.
Technique

Recherche à date d'effet

Trouver le taux, le prix ou la version valable à la date de chaque fait, dans une table qui stocke des changements.
Technique

Répartition avec reste

Répartir un montant sur des lignes selon un poids, arrondi au centime, avec le reste sur une ligne choisie pour que les parts fassent exactement le total.
Technique

Semi-jointure

Les lignes qui ont au moins une correspondance, chacune gardée une fois.
Technique

Table de quarantaine

Les mauvaises lignes vont dans une table à part avec la règle qu'elles enfreignent, au lieu d'être filtrées et oubliées.
Technique

Un histogramme en SQL

Compter les valeurs par tranche de largeur fixe, en gardant les tranches vides.

Piège9

Piège

Convertir, puis tronquer

Découper une heure UTC en jours, heures ou mois donne des jours UTC : convertissez d'abord dans le fuseau du lecteur.
Piège

Données sales

Un fichier mal fichu ne lève aucune erreur : chaque requête tourne, et les réponses sont fausses. Contrôlez une nouvelle table avant de lui faire confiance.
Piège

Fan-out de jointure

Joindre deux tables « un à plusieurs » multiplie les lignes, et les sommes grossissent avec.
Piège

Le paradoxe de Simpson

Un groupe peut être meilleur dans chaque segment et moins bon au total, quand les segments pèsent différemment.
Piège

NOT IN avec un NULL

Un seul NULL dans la liste et NOT IN ne renvoie plus aucune ligne.
Piège

Pas encore observable

Un résultat qui n'a pas eu le temps de se produire est inconnu, pas nul : les cohortes jeunes et la période en cours ressemblent à un effondrement.

Mot-clé2

Mot-clé

LEFT JOIN

Garder toutes les lignes de la table de gauche, même sans correspondance à droite.
Mot-clé

MAX_BY et MIN_BY

La valeur d'une colonne sur la ligne où une autre colonne est la plus grande (ou la plus petite), dans un simple GROUP BY.

Indicateur5

Indicateur

Chiffre d'affaires

Une seule définition pour tout le torréfacteur : quantity * unit_price des lignes de commande, commandes annulées exclues.
Indicateur

Expliquer une variation

Découper la variation d'une métrique en parts dont la somme la redonne : volume contre valeur, mix contre prix, puis par segment.
Indicateur

Panier moyen

Le chiffre d'affaires divisé par le nombre de commandes, sur une période.
Indicateur

Taux d'annulation

Les commandes annulées divisées par toutes les commandes, en pourcentage.

Modélisation4

Modélisation

Staging, intermédiaire, marts

Chaque définition vit dans une couche : noms et types au staging, logique partagée dans les modèles intermédiaires, entités métier dans les marts.