Sous-requêtes synchronisées - exercice

Vidéo non disponible ! Réessayez plus tard
Cette vidéo fait partie de la formation
Apprendre MySQL 8.0 par la pratique
Revoir le teaser Je m'abonne
Transcription

Cette leçon fait partie de la formation
89,00€ Je commande

Formation incluse dans l'abonnement Elephorm Je m'abonne à Elephorm

DescriptionProgrammeAvis

Cette leçon fait partie de la formation
89,00€ Je commande

Formation incluse dans l'abonnement Elephorm Je m'abonne à Elephorm

Être capable de créer et exploiter une base de données MySQL au quotidien de manière autonome.

Cette formation a été conçue à destination d'un public sans connaissances préalables sur les bases de données, avec l'ambition de transmettre les notions fondamentales permettant d'entrer sereinement et efficacement dans l'univers des bases de données, et d'exploiter MySQL au quotidien de manière autonome.

Elle permet de tirer parti de logiciels de qualité conçus spécialement pour travailler avec les bases de données : MySQL Workbench et Datagrip.

Elle met l'accent sur la pratique, et comprend de nombreuses démonstrations, mises en situations, exercices corrigés et commentés.

Elle met à disposition en ressources téléchargeables 3 bases de données portant sur des thèmes variés (médicaments vétérinaires, sécurité routière, prénoms), les scripts SQL des démonstrations les plus longues, et intègre un code promotionnel vous permettant de bénéficier d'une prolongation à 4 mois de la période d'essai gratuite de Datagrip.

Voir plus
Dans cette vidéo, je vous propose un exercice de mise en application de la vidéo précédente et vous demande de calculer, pour chaque laboratoire, le pourcentage des produits qu'ils ont commercialisés qui contenaient un principe actif innovant au moment de leur mise sur le marché. Prenez votre temps pour résoudre cet exercice, c'est assez long. Mettez la vidéo en pause et je vous explique dans un instant comment j'ai procédé. Voici la solution que je vous propose. Plutôt que de la taper sous vos yeux, puisque c'est assez long, je vais simplement la commenter. Vous voyez que, globalement, il y a une bonne trentaine de lignes, de scripts, donc le résultat s'obtient par itération, par étapes successives. Les deux premières, finalement, sont assez proches de ce qu'on a fait précédemment, c'est-à-dire qu'on a une première CTE qui nous renvoie la liste des noms des médicaments, des titulaires d'AMM, des noms des substances et des dates d'AMM, en faisant une jointure interne sur les trois tables Médoc, Médoc Substance et Substance. C'est exactement la même chose que précédemment. Il y a une différence avec la vidéo précédente, c'est qu'au lieu de valoriser directement cette CTE dans une requête pour afficher les résultats, on la valorise pour récupérer des informations dans une autre CTE. Effectivement, c'est possible. Alors, il ne faut pas oublier, à ce moment-là, de mettre une virgule, ici, entre les déclarations de deux CTEs successives. Vous voyez qu'on en a une ici également, donc ça laisse présager que, par la suite, on va réutiliser le résultat de cette CTE, que j'ai appelée, ici, Innovation, dans un autre script SQL. Globalement, on fait exactement la même chose que précédemment, c'est-à-dire que si, ici, je fais un SELECT ALL FROM INNOVATION, je vais avoir le même résultat que dans la vidéo précédente, où on a, effectivement, la liste des médicaments innovants avec les substances que chacun de ces médicaments contient, le titulaire de l'AMM pour ce médicament et l'année à laquelle le médicament a été commercialisé. Alors, il faut avoir en tête que, dans cette liste, on peut avoir un médicament qui apparaît plusieurs fois. Pourquoi ? Parce qu'en fait, un médicament peut contenir plusieurs principes actifs. Donc, on va, par la suite, devoir s'assurer qu'on a bien éliminé les doublons sur la colonne Substance. Et c'est ce qu'on fait dans cette CTE, ici. Alors, pour pouvoir, du coup, exploiter dans cette CTE ce qui précède, il faut que j'enlève ce que j'ai rajouté pour afficher les résultats intermédiaires, et donc que je rajoute une virgule après la déclaration de la CTE précédente. Qu'est-ce qu'on fait, ici ? Ici, en fait, on fait le décompte des médicaments innovants par laboratoire. C'est-à-dire qu'on utilise, ici, une table dérivée issue de la CTE précédente, dans laquelle on a simplement retiré la colonne Substance, et on fait un Select Distinct. Par exemple, vous voyez, dans la requête précédente, dont le résultat est encore affiché ici, si j'affiche le dernier enregistrement, je vois que son numéro est 797. Si j'exécute cette instruction-là, en fait, j'aurai moins d'informations, j'aurai moins d'enregistrements dans la table que 797, simplement parce que j'aurais éliminé des doublons sur la colonne Substance. Ensuite, ce n'est qu'une étape, parce que l'idée, c'est de dénombrer ces médicaments innovants par titulaire. Donc, je valorise cette table dérivée pour, finalement, faire un calcul d'agrégation. Simplement, je dénombre les enregistrements qui sont dans cette table et les regroupe par titulaire. Et ensuite, j'ordonne les résultats par nombre de médicaments innovants décroissant. Donc, comme je l'ai fait précédemment, je peux de nouveau, ici, faire un select all from des comptes innovation pour voir un petit peu ce que, jusqu'ici, j'ai calculé. Voilà, j'ai la liste des laboratoires avec le total d'innovation qui leur correspond. On n'est pas encore au résultat final puisque l'idée, c'était d'avoir, pour chaque laboratoire, le pourcentage de médicaments innovants. Donc, ça veut dire qu'il me manque encore des informations sur le nombre total de médicaments mis sur le marché par laboratoire. Et qu'il faut que je puisse faire converger, finalement, cette dernière information avec celle qui est affichée ici. Donc, le total d'innovation pour ensuite pouvoir faire ce calcul. Alors, comment est-ce que je vais procéder ? Eh bien, c'est ce que je vais faire dans la dernière étape, ici. Je vais commencer, déjà, par dénombrer les médicaments, tous les médicaments mis sur le marché par un laboratoire donné. Donc, je le fais ici en utilisant une table dérivée dans laquelle je fais simplement un calcul d'agrégation particulière des médicaments. Dans cette table, je prends la table Medoc. Donc, on n'a clairement pas le risque d'avoir des doublons sur les substances puisqu'en fait, elles ne sont pas présentes dans cette table. Et cette table-là va me retourner un nombre d'enregistrements supérieur à celui que j'aurai dans la table qui dénombre les innovations par laboratoire. Donc, pour rassembler les informations des deux tables, je vais faire un left join, ici. Ça me permet de récupérer toutes les données de cette table dérivée, ici, à laquelle j'ai associé l'alias des comptes total et seulement celle de la CTE des comptes innovation que j'ai calculée précédemment pour lesquelles on a une identité du titulaire d'AMM. Une fois que j'ai défini, finalement, cette clause from, je peux choisir ce que je vais projeter à partir de la source de données. Et bien, finalement, l'exercice est quasiment terminé à ce stade puisque je vais afficher le titulaire, le total des innovations de ce titulaire, le total de médicaments et le pourcentage. Alors, il y a quelques détails sur lesquels je voudrais revenir, quand même, notamment l'utilisation de cette fonction IF NULL, ici. Je vous affiche une indication sur son fonctionnement. Globalement, elle procède de la manière suivante. Elle prend deux arguments et renvoie la valeur du deuxième argument si le premier est nul. Ici, on peut s'attendre à avoir des valeurs nulles dans le total d'innovations. Ce que je veux, c'est que quand j'ai la valeur nulle, j'ai un zéro qui soit reporté dans mon dataset. Donc, j'utilise la fonction IF NULL pour ça. Je l'utilise de la même manière sur mon calcul parce que j'implique dans ce calcul 7 colonnes totales innovations et comme elle est nulle par moment, ça aurait pour effet de rendre nulle également mon calcul. Ce calcul est très simple. Je calcule la part des innovations dans le total des médicaments mis sur le marché par un laboratoire. On obtient un nombre compris entre 0 et 1. Je le multiplie par 100, puis l'arrondi au dixième et enfin, remplace les valeurs nulles par zéro. Je le projette sous forme d'une colonne que j'ai nommée part d'innovation. Enfin, dernière étape, je trie mes enregistrements par ordre de total d'innovation décroissant. Voilà, c'est terminé. Je vais exécuter ce long script. Il faut bien tout sélectionner. Lorsque j'exécute, je vois que globalement, on a les mêmes laboratoires en tête que ceux qu'on a eu dans la table qu'on a affichée au cours du commentaire de ce script. La formation qu'on a en plus, c'est la part des médicaments innovants qu'on a pu calculer à la volée grâce à ces deux colonnes qu'on a finalement réussi à intégrer dans un même résultat à partir de deux datasets différents. Alors, on constate qu'on a, si j'agrandis un petit peu cette liste-là, on a par moment des données qu'on pourrait peut-être chercher à rassembler. Par exemple, ici, ce serait peut-être intéressant de réunir dans une même ligne, dans un même enregistrement, les informations issues d'intervettes et d'intervettes internationales. C'est le cas aussi pour d'autres laboratoires. Par exemple, si je prends Zoetis France, Zoetis Belgium, finalement, ce serait peut-être intéressant de faire converger ça. Et alors, on peut le faire, et je vais vous montrer comment procéder dans la vidéo suivante. À tout de suite.

Programme détaillé

Je commande Je m'abonne
Je commande Je m'abonne
Je commande Je m'abonne
Je commande Je m'abonne
Je commande Je m'abonne
Je commande Je m'abonne
Je commande Je m'abonne
Je commande Je m'abonne
Je commande Je m'abonne
Je commande Je m'abonne
Je commande Je m'abonne
Je commande Je m'abonne
Je commande Je m'abonne
Je commande Je m'abonne
Je commande Je m'abonne
Je commande Je m'abonne
Je commande Je m'abonne
Je commande Je m'abonne
Je commande Je m'abonne
Je commande Je m'abonne
Je commande Je m'abonne
Unions 06:39
Je commande Je m'abonne
Je commande Je m'abonne
Je commande Je m'abonne
Je commande Je m'abonne
Je commande Je m'abonne
Je commande Je m'abonne
Je commande Je m'abonne
Je commande Je m'abonne
Je commande Je m'abonne
Je commande Je m'abonne
Je commande Je m'abonne
Je commande Je m'abonne
Je commande Je m'abonne
Je commande Je m'abonne
Je commande Je m'abonne
Je commande Je m'abonne
Je commande Je m'abonne
Je commande Je m'abonne
Je commande Je m'abonne
Je commande Je m'abonne
Je commande Je m'abonne
Je commande Je m'abonne
Je commande Je m'abonne
Je commande Je m'abonne
Je commande Je m'abonne
Je commande Je m'abonne
Nos dernières formations Code & Data
  • Nouveau
    Maîtriser FlutterFlow - De l'Idée à l'Application
    Découvrir
    Cette formation en FlutterFlow est l'outil idéal pour tout développeur souhaitant créer des applications mobiles robustes et interactives sans coder de manière complexe. Grâce à des modules complets et structurés, vous apprendrez à utiliser FlutterFlow et Firebase, à sécuriser vos données, à concevoir des interfaces utilisateur élégantes et à intégrer des API telles qu'OpenIA. Rejoignez-nous pour transformer vos idées en applications innovantes et performantes.
    4h08 57 leçons
  • Nouveau
    Webflow - Créer la landing Page d'OpenAI
    Découvrir
    À l'issue de cette formation, les participants seront capables de créer de manière autonome une landing page sophistiquée, similaire à celle d'OpenAI, en utilisant les fonctionnalités avancées de Webflow pour le design responsive et les interactions.
    3h48 19 leçons
  • Apprendre Svelte 3 et SvelteKit 1.0
    Découvrir
    Créez des applications web modernes et ultra-rapides avec notre formation "Apprendre Svelte 3 et SvelteKit 1.0". Rejoignez-nous et devenez un expert du développement JavaScript ! 🚀 #Svelte #SvelteKit #DéveloppementWeb
    7h42 77 leçons
  • Apprendre Vue JS 3
    Découvrir
    Apprenez à créer des applications web modernes avec notre formation "Apprendre Vue JS 3". Rejoignez-nous et maîtrisez ce puissant framework JavaScript ! 🚀 #VueJS #FormationWeb #Développement
    11h47 91 leçons
  • Gratuit
    Apprendre ChatGPT
    Découvrir
    Ce cours vise à fournir une compréhension approfondie de l'intelligence artificielle, en se concentrant sur l'utilisation pratique de ChatGPT et DALL-E. Les participants découvriront comment l'IA peut transformer des domaines variés tels que le marketing, le développement web, et le design graphique. Le contenu couvre les bases de l'IA, l'art de créer des prompts efficaces, l'utilisation de plugins avancés, et le codage assisté par IA. Des projets pratiques permettront d'appliquer ces connaissances dans des scénarios réels. Destiné aux professionnels de la technologie, aux marketeurs, aux développeurs, et à toute personne intéressée par l'IA, ce cours est une opportunité d'acquérir des compétences innovantes et applicables dans divers contextes professionnels et créatifs. Les prérequis incluent une compréhension basique de l'informatique et un intérêt pour l'IA. Le cours promet une aventure d'apprentissage enrichissante, ouvrant de nouvelles perspectives dans l'utilisation de l'intelligence artificielle.
    3h12 30 leçons

éditeur de vidéos pédagogiques

Des supports pédagogiques en vidéo, produits avec les meilleurs experts. Dans nos studios à Paris, Lyon ou Montpellier. Vous souhaitez travailler avec nous ?
image-micro