Pivoter les données en SQL
Vous commencez ici? Cette leçon fait partie d’un didacticiel complet sur l’utilisation de SQL pour l’analyse de données. Découvrez le début.
Dans cette leçon, nous allons couvrir:
- Faire pivoter des lignes vers des colonnes
- Pivoter des colonnes vers des lignes
- Et maintenant?
Pivotement de lignes en colonnes
Cette leçon vous apprendra comment prendre des données formatées pour l’analyse et les faire pivoter pour une présentation ou un graphique . Nous allons prendre un ensemble de données qui ressemble à ceci:
Et le faire ressembler à ceci:
Pour cet exemple, nous utiliserons le même ensemble de données de joueurs de football universitaire que celui utilisé dans la leçon CASE. Vous pouvez afficher les données directement ici.
Commençons par agréger les données pour afficher le nombre de joueurs de chaque année dans chaque conférence, comme le premier exemple de la leçon de jointure interne:
Visualisez ceci en mode.
Afin de transformer les données, nous devrons mettre la requête ci-dessus dans une sous-requête. Il peut être utile de créer la sous-requête et d’en sélectionner toutes les colonnes avant de commencer à effectuer des transformations. La réexécution de la requête à des étapes incrémentielles comme celle-ci facilite le débogage si votre requête ne s’exécute pas. Notez que vous pouvez éliminer la clause ORDER BY
de la sous-requête puisque nous réorganiserons les résultats dans la requête externe.
En supposant que cela fonctionne comme prévu (les résultats doivent être exactement les mêmes que ceux de la première requête), il est temps de diviser les résultats en différentes colonnes pendant différentes années. Chaque élément dans l’instruction SELECT
crée une colonne, vous devrez donc créer une colonne distincte pour chaque année:
Techniquement, vous avez maintenant atteint l’objectif de ce didacticiel. Mais cela pourrait encore être amélioré. Vous remarquerez que la requête ci-dessus produit une liste classée par ordre alphabétique par conférence. Il peut être plus judicieux d’ajouter une colonne «total de joueurs» et de l’ordonner (du plus grand au plus petit):
Et vous avez terminé! Regardez ceci en mode.
Colonnes pivotantes aux lignes
Beaucoup de données que vous trouverez sur Internet sont formatées pour la consommation, pas pour l’analyse. Prenons, par exemple, ce tableau indiquant le nombre de tremblements de terre dans le monde de 2000 à 2012:
Dans ce format, il est difficile de répondre à des questions telles que « quoi « est la magnitude moyenne d’un tremblement de terre? » Ce serait beaucoup plus facile si les données étaient affichées dans 3 colonnes: «magnitude», «année» et «nombre de tremblements de terre». Voici comment transformer les données sous cette forme:
Tout d’abord, vérifiez ces données en mode:
Remarque: colonne les noms commencent par « year_ » car Mode exige que les noms de colonnes commencent par des lettres.
La première chose à faire ici est de créer un tableau qui répertorie toutes les colonnes du tableau d’origine sous forme de lignes dans un nouveau tableau . Sauf si vous avez une tonne de colonnes à transformer, le moyen le plus simple est souvent de les lister dans une sous-requête:
Une fois que vous avez « obtenu ceci , vous pouvez la joindre croisée avec la table worldwide_earthquakes
pour créer une vue développée:
Notez que chaque ligne de la worldwide_earthquakes
est répliqué 13 fois. La dernière chose à faire est de résoudre ce problème à l’aide d’une instruction CASE
qui extrait les données de la colonne correcte dans la table worldwide_earthquakes
en fonction de la valeur indiquée dans la colonne year
:
Visualisez le produit final en mode.
Félicitations pour avoir terminé le didacticiel SQL avancé! Maintenant que vous maîtrisez SQL, la prochaine étape consiste à perfectionner votre processus analytique.
Nous avons créé la section Formation SQL Analytics dans ce but précis. Avec de faux ensembles de données pour imiter des situations du monde réel, vous pouvez aborder cette section comme une formation en cours d’emploi. Vérifiez-le!