Commencez à interroger des données avec ce langage de requête simple

Travailler avec des données devient une compétence de plus en plus importante sur le lieu de travail moderne.

Les données ne sont plus le domaine des analystes et des ingénieurs logiciels. Avec la technologie d'aujourd'hui, n'importe qui peut travailler avec des données pour analyser les tendances et éclairer sa prise de décision.

Un concept fondamental lorsque l'on travaille avec des données consiste à «interroger» un ensemble de données. Il s'agit de poser littéralement des questions sur un ensemble de données. Un langage de requête est un langage logiciel qui fournit une syntaxe pour poser de telles questions.

Si vous n'avez aucune expérience en rédaction de requêtes, elles peuvent paraître un peu intimidantes. Cependant, avec un peu de pratique, vous pouvez maîtriser les bases.

Voici comment vous lancer dans Google Sheets.

Langage de requête de l'API de visualisation Google

Vous utilisez peut-être déjà Google Sheets pour une grande partie de votre travail quotidien. Peut-être connaissez-vous son utilisation pour générer des graphiques et des graphiques.

Le langage de requête de l'API de visualisation Google est la magie qui fonctionne en coulisse pour rendre cela possible.

Mais saviez-vous que vous pouvez accéder à cette langue via la QUERY()fonction? Cela peut être un outil puissant pour travailler avec de grandes feuilles de données.

Il existe de nombreuses similitudes entre le langage de requête et SQL.

Dans les deux cas, vous définissez un ensemble de données de colonnes et de lignes et choisissez différentes colonnes et lignes en spécifiant divers critères et conditions.

Dans cet article, les données d'exemple proviendront d'un gros fichier CSV contenant les résultats du football international entre 1872 et 2019. Vous pouvez télécharger les données de Kaggle.

Dans une nouvelle feuille de calcul Google, importez le fichier CSV. Vous pouvez sélectionner toutes les données avec Ctrl + A (ou Cmd + A sur Mac).

Dans le ruban de menu, choisissez Données> Plages nommées ... et appelez la plage sélectionnée par exemple «données». Cela facilitera le travail avec.

Vous êtes maintenant prêt à commencer à interroger les données. Créez un nouvel onglet dans la feuille de calcul et dans la cellule A1, créez une nouvelle QUERY()formule.

Obtenez tous les matchs d'Angleterre

Cette première requête trouve toutes les lignes de l'ensemble de données où l'Angleterre est soit l'équipe à domicile, soit l'équipe à l'extérieur.

La QUERY()formule prend au moins deux arguments. Le premier est la plage nommée, qui sera l'ensemble de données interrogé. Le second est une chaîne qui contient la requête réelle.

=QUERY(data, "SELECT * WHERE B = 'England' OR C = 'England'")

Décomposons cela.

SELECT *demande de renvoyer toutes les colonnes de l'ensemble de données. Si vous ne vouliez que les colonnes A, B et C, vous écririez SELECT A, B, C.

Ensuite, vous incluez un filtre pour rechercher uniquement les lignes dans lesquelles la colonne B ou la colonne C contient l'équipe 'England'. Assurez-vous d'utiliser des guillemets simples pour les chaînes à l'intérieur de la requête. Les guillemets doubles sont utilisés pour ouvrir et fermer la requête elle-même.

Cette formule renvoie toutes les lignes où l'Angleterre a joué. Si vous souhaitez rechercher une autre équipe, modifiez simplement la condition dans le filtre.

Comptez tous les matchs amicaux

Ensuite, comptons le nombre de matchs amicaux dans l'ensemble de données.

=QUERY(data, "SELECT COUNT(A) WHERE F = 'Friendly'")

Cela utilise la COUNT()fonction du langage de requête . Ceci est un exemple de fonction d'agrégation. Les fonctions d'agrégation résument plusieurs lignes en une seule.

Par exemple, dans cet ensemble de données, il y a 16 716 lignes où la colonne F est égale 'Friendly'. Au lieu de renvoyer toutes ces lignes, la requête renvoie une seule ligne - qui les compte à la place.

D'autres exemples de fonctions d'agrégation comprennent MAX(), MIN()et AVG(). Au lieu de renvoyer toutes les lignes correspondant à la requête, il trouve à la place leurs valeurs maximale, minimale et moyenne.

Grouper par tournoi

Les fonctions d'agrégation peuvent faire plus si vous utilisez une GROUP BYinstruction à côté d'elles. Cette requête permet de savoir combien de matchs ont été joués par chaque type de tournoi.

=QUERY(data, "SELECT F, COUNT(A) GROUP BY F")

Cette requête regroupe l'ensemble de données par chacune des valeurs de la colonne F. Elle compte ensuite le nombre de lignes dans chaque groupe.

Vous pouvez utiliser GROUP BYsur plusieurs colonnes. Par exemple, pour connaître le nombre de matchs disputés dans chaque pays par tournoi, utilisez la requête ci-dessous:

=QUERY(data, "SELECT H, F, COUNT(A) GROUP BY H, F")

Essayons un filtrage plus avancé.

Obtenez tous les matchs de l'Angleterre contre l'Allemagne

Vous pouvez spécifier une logique de filtrage plus complexe à l'aide des mots clés ANDet OR. Pour plus de lisibilité, il peut être utile d'utiliser des crochets autour de chaque partie du filtre.

Par exemple, pour trouver toutes les correspondances entre l'Angleterre et l'Allemagne:

=QUERY(data, "SELECT * WHERE (B = 'England' AND C = 'Germany') OR (C = 'England' AND B ='Germany')")

Ce filtre a deux critères - l'un où l'Angleterre est l'équipe à domicile et l'Allemagne est absente, et l'autre vice versa.

L'utilisation de la validation des données facilite la sélection de deux équipes dans l'ensemble de données.

Ensuite, vous pouvez écrire une requête qui utilise les valeurs de différentes cellules dans son filtre. N'oubliez pas d'utiliser des guillemets simples pour identifier les chaînes dans la requête et des guillemets doubles pour ouvrir et fermer différents éléments de la requête.

=QUERY(data, "SELECT * WHERE (B = '"&B1&"' AND C = '"&B2&"') OR (C = '"&B1&"' AND B ='"&B2&"')")

À la recherche de tendances

Les fonctions d'agrégation et les filtres constituent des outils puissants lorsqu'ils sont utilisés en combinaison. Une fois que vous êtes à l'aise avec leur fonctionnement, vous pouvez commencer à rechercher toutes sortes de tendances intéressantes dans votre ensemble de données.

Par exemple, la requête ci-dessous trouve les objectifs moyens par match, par année depuis 1900.

=QUERY(data, "SELECT YEAR(A), AVG(D) + AVG(E) WHERE YEAR(A) >= 1900 GROUP BY YEAR(A)")

Si vous tracez le résultat de la requête sous forme de graphique linéaire, vous pouvez immédiatement commencer à voir les tendances au fil du temps.

Classement des résultats

Parfois, vous n'êtes pas intéressé par la recherche de toutes les lignes correspondantes dans un ensemble de données. Souvent, vous souhaiterez les trier selon certains critères. Peut-être souhaitez-vous seulement trouver les dix meilleurs disques.

Cette requête recherche les dix correspondances les plus performantes de l'ensemble de données.

=QUERY(data, "SELECT * ORDER BY (D+E) DESC LIMIT 10")

Remarquez la ORDER BYdéclaration. Cela trie les lignes en fonction des colonnes spécifiées. Ici, la requête trie la sortie en fonction du nombre de buts marqués dans le jeu.

Le DESCmot-clé indique de trier par ordre décroissant (le ASCmot - clé les aurait triés par ordre croissant).

Enfin, le LIMITmot - clé limite la sortie à un nombre donné de lignes (dans ce cas, dix).

On dirait qu'il y a eu de jolis jeux à sens unique en Océanie!

Quelles villes ont accueilli le plus de matchs de la Coupe du monde?

Et maintenant, pour un dernier exemple pour tout rassembler et faire avancer votre imagination.

Cette requête recherche les dix premières villes qui ont accueilli le plus de matchs de la Coupe du Monde de la FIFA.

=QUERY(data, "SELECT G, COUNT(A) WHERE F = 'FIFA World Cup' GROUP BY G ORDER BY COUNT(A) DESC LIMIT 10")

Maintenant c'est ton tour

J'espère que vous avez trouvé cet article utile. Si vous êtes à l'aise avec la logique de chaque exemple, vous êtes prêt à essayer le vrai SQL.

Cela introduira des concepts tels que JOINS, les requêtes imbriquées et les fonctions WINDOW. Lorsque vous maîtrisez ces derniers, votre pouvoir de manipuler les données passera par le toit.

Il existe un certain nombre d'endroits pour commencer l'apprentissage de SQL. Essayez les exemples interactifs sur w3schools!