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.
Ce qu'il faut chercher dans une nouvelle table :
- Des nombres ou des dates en texte : ils se trient comme des mots (
'99'>'138'). Vérifiez avecDESCRIBE, puisCASTouTRY_CAST. - Les formats de tableur :
1 614,00 €,03/04/2024. Retirez la devise et le séparateur de milliers ; lisez les dates avecstrptime. - Les valeurs bouche-trou : 1900-01-01, -1, 0,
'N/A'pour dire « manquant ». Regardez les valeurs extrêmes et les plus fréquentes, puisNULLIF. - Vide n'est pas NULL :
''et' 'comptent comme des valeurs.NULLIF(TRIM(x), ''). - Les valeurs impossibles : un stock négatif, une remise de 140 %, un événement après le chargement.
MIN,MAXetCOUNT(*) - COUNT(colonne)sur chaque colonne les montrent. - Les clés presque identiques : une espace, une majuscule, un accent, et la jointure perd des lignes en silence. Comparez le nombre de lignes ;
TRIM,LOWER. - Les doublons : une ligne importée deux fois, une personne sous deux orthographes.
Nettoyez une fois, là où les données arrivent, et mettez de côté les lignes que vous ne pouvez pas corriger (une table de quarantaine) au lieu de les supprimer.
Le piège
WITH stock(sku, quantity) AS (VALUES ('CAF-001', '99'), ('CAF-002', '138'), ('CAF-003', '7'))
SELECT MAX(quantity) AS biggest
FROM stock;
| biggest |
|---|
| 99 |
La correction
WITH stock(sku, quantity) AS (VALUES ('CAF-001', '99'), ('CAF-002', '138'), ('CAF-003', '7'))
SELECT MAX(CAST(quantity AS INTEGER)) AS biggest
FROM stock;
| biggest |
|---|
| 138 |
Pratiquer :Fernández, pas FernandezUn e-mail, plusieurs comptes'paris' ne trouve personneDes prix qui ne sont pas des nombresVide n'est pas NULLLe plus gros stock vaut 99 ?1 614,00 €Né le 1900-01-01Une remise de 140 %'France ' n'est pas 'France'Nettoyer un export d'inscriptionsUn nombre qui est du texteEnregistré deux foisDes lignes sans produitProfiler avant de faire confianceDes dates impossiblesUne règle pour toutes les colonnesDeux formats de date et du bruitUne personne, deux comptesDes centimes aux euros, une fois et exactementMettre en quarantaine, pas jeterUne table de correspondance des paysLes doubles clicsPeu d'utilisateurs, trop d'événementsL'erreur qui apparaît en aval