Trois techniques SQL à ajouter à votre boîte à outils

Dec 30 2022
À mon humble avis, SQL est l'une des compétences techniques les plus importantes à développer pour les ingénieurs de données, les scientifiques et les analystes. J'ai passé d'innombrables heures à perfectionner des requêtes SQL, puis à les interpréter plus tard.
Peinture en aérosol générée par DALL-E

À mon humble avis, SQL est l'une des compétences techniques les plus importantes à développer pour les ingénieurs de données, les scientifiques et les analystes. J'ai passé d'innombrables heures à perfectionner des requêtes SQL, puis à les interpréter plus tard. J'ai trouvé que bien que SQL soit facile à apprendre, il y a une courbe raide avec et souvent il y a plusieurs façons d'effectuer une seule tâche. Voici trois de mes techniques de prédilection lors de l'écriture de requêtes SQL lisibles .

Avec déclaration

En tant qu'ingénieur de données, je suis surpris d'apprendre que de nombreux jeunes professionnels des données travaillant en SQL ne connaissent pas l'instruction WITH. L'instruction WITH est une méthode d'organisation des requêtes complexes avec des sous-requêtes, ce qui les rend plus faciles à lire. Il fournit un moyen de stocker les résultats de requête intermédiaires, ce qui peut être utile dans de nombreuses situations. Concrètement, vous définissez chaque sous-requête et lui donnez un nom. Vous appelez ensuite toutes ces sous-requêtes nommées dans une instruction select finale simplifiée. À bien des égards, l'utilisation d'une instruction WITH vous permet de créer des tables temporaires sur lesquelles vous interrogez. Dans l'exemple de base ci-dessous, vous pouvez voir comment une instruction WITH est structurée.

WITH 
  t1 AS (SELECT * FROM table1),
  t2 AS (SELECT * FROM table2)
SELECT *
FROM t1 LEFT JOIN t2
ON t1.id = t2.id;

Fonctions fenêtrées

Une autre de mes fonctions SQL incontournables est la fonction fenêtrée. Trop souvent, je veux comparer la valeur à la moyenne d'un sous-groupe. Une façon de le faire est d'avoir deux sous-requêtes et de les joindre ou d'extraire les données dans R/Python et de faire la comparaison. Cependant, vous pouvez accomplir cela en utilisant une fonction fenêtrée.

Les fonctions fenêtrées sont des fonctions qui effectuent des calculs sur un ensemble d'enregistrements, appelé une « fenêtre ». Ils vous permettent de partitionner un résultat de requête en plusieurs catégories et d'effectuer des calculs sur chaque partition.

Par exemple, vous souhaitez comparer le score moyen au test d'un sous-ensemble particulier à des points de données individuels. En utilisant une fonction fenêtrée, vous pouvez facilement comparer un seul événement à la moyenne par sous-groupe (ou partition). Les fonctions fenêtrées incluent les fonctions d'agrégation, les fonctions de classement et les fonctions de décalage. Ces fonctions peuvent vous aider à analyser et résumer rapidement les données d'une requête. Vous trouverez ci-dessous la syntaxe de la fonction moyenne en tant que fonction fenêtrée.

AVG() OVER (PARTITION BY [column_name] ORDER BY [column_name])



Syntax: RANK () OVER (PARTITION BY [column_name] ORDER BY [column_name])

Essayez Cast

Enfin, TRY_CAST est une fonction que j'utilise beaucoup lors de la première exploration d'une base de données ou d'une nouvelle table. TRY_CAST est une fonction que j'utilise pour convertir une expression d'un type de données en un autre type de données. Contrairement à CAST, il ne génère pas d'erreur si la conversion échoue. Au lieu de cela, il renvoie une valeur NULL. TRY_CAST est incroyablement utile pour gérer des données qui peuvent ne pas être valides pour un type de données particulier (je parle des dates en particulier). Il est souvent utilisé pour garantir l'intégrité des données et pour éviter les erreurs inattendues lors du traitement de données d'origine inconnue. Je trouve que l'utilisation de TRY_CAST est particulièrement utile lorsque je suis dans l'étape d'exploration des données d'un projet.

SELECT TRY_CAST(column_name AS data_type)
FROM table_name;

Ces trois techniques SQL peuvent être utiles lorsque vous travaillez avec des données dans une base de données. Comme tous les outils ou techniques, vous devez comprendre quand ils sont les bons outils pour le travail.