Bonjour, étant loin d'être le meilleur dans le SQL, je me demande comment je pourrais faire pour améliorer mon raisonnement lorsqu'il s'agit d'une requête.
Par exemple (je suis étudiant), lorsque j'ai des exercices avec donc des requêtes à faire et que je ne trouve pas la réponse, je regarde la correction et je m’aperçois qu'il était recommandé d'utiliser les sous-requêtes mais je n'ai pas eu le réflexe de le faire.
Prenons en exemple la BDD world( disponible ici ):
Pour la question "Trouver la plus grande ville de chaque continent", je me dis en premier qu'il me faut la clause 'GROUP BY Country.Continent' et qu'il faut que je prenne chaque continent et une jointure entre les tables Country et City puis la ville la plus peuplée.
Or la réponse (proposée) est :
Comment faîtes-vous pour avoir la bonne façon de penser?
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8 SELECT c.Continent, City.Name FROM Country AS c JOIN City ON Code = CountryCode, (SELECT Continent, MAX(City.Population) AS population FROM Country JOIN City ON Code = CountryCode GROUP BY Continent) AS tb1 WHERE c.Continent = tb1.Continent AND City.Population = tb1.Population;
Certains dirons que c'est en forgeant que l'on devient forgeron.
Je pratique mais ca a du mal à rentrer donc possible que je vois mal les choses..
Partager