Moyen de trouver les jeux vidéo avec le plus d'implication des développeurs (à l'aide d'une requête SQL)
P粉768045522
P粉768045522 2023-09-04 16:18:24
0
1
588
<p>Supposons que nous ayons 3 tables, à savoir les jeux vidéo, les développeurs et les travaux. </p> <p>Dans le tableau des jeux vidéo, nous avons les attributs suivants : </p> <ul> <li>videogameid (clé primaire)</li> <li>Titre</li> <li>Année</li> <li>genre</li> </ul> <p>Ensuite dans le tableau des développeurs, nous avons : </p> <ul> <li>developerid (clé primaire)</li> <li>Nom</li> <li>genre</li> </ul> <p>Ensuite, dans la table workson, nous avons : </p> <ul> <li>videogameid (clés primaires et étrangères)</li> <li>developerid (clés primaires et étrangères)</li> </ul> <p>Ma tentative de code : </p> <pre class="brush:php;toolbar:false;">SELECT MAX(id du jeu vidéo) DEPUIS (SELECT identifiant de jeu vidéo DE travailson GROUPER PAR ID de jeu vidéo AYANT UN COMPTE (ID de développeur DISTINCT)> 5 )videogames_with_most_developers;</pre> <p>Cependant, je n'ai pas réussi à récupérer les réponses avec les titres (principalement parce que je n'ai pas sélectionné de titre), mais c'est parce que je n'arrive pas à faire le lien. </p> <p>Edit : Nous avons quelques exemples de données, dans le tableau des jeux vidéo : </p> <p>Insérer un jeu vidéo (identifiant du jeu vidéo, titre, année, type)</p><p> VALEURS (111, 'World of Warcraft', 2004, 'MMORPG'); Insérer un jeu vidéo (identifiant du jeu vidéo, titre, année, type) VALEURS (112,'StarCraft II',2008,'RTS');</p> <p>Le tableau des développeurs contient : </p> <p>Insérer un développeur (ID de développeur, sexe, nom) valeur(98734,'M','Johnson'); Insérer un développeur (ID de développeur, sexe, nom) valeur(98735,"F","Régina"); Insérer un développeur (ID de développeur, sexe, nom) valeur(98736,"M","Lamar"); </p> <p>La table workson contient : </p> <p>Insérer workson(videogameid,developerid) valeur (111, 98734) ; insérer workson (id du jeu vidéo, ID du développeur) Valeurs (111, 98735) ; insérer workson (id du jeu vidéo, ID du développeur) Valeur (112, 98736);</p> <p>Le résultat attendu devrait être celui intitulé "World of Warcraft", car il compte le plus grand nombre de réalisateurs travaillant sur ce projet, avec un nombre de 2, tandis que le projet intitulé "Starcraft 2" n'a pas le plus grand nombre de développeurs dans cet exemple. données . </p>
P粉768045522
P粉768045522

répondre à tous(1)
P粉158473780

Les colonnes/fonctions d'agrégation (MAX, COUNT, AVG, etc.) sélectionnées dans la requête de sélection seront affichées sous forme de tableau. Dans votre requête :

SELECT MAX(videogameid) FROM ....

Seul l'identifiant du jeu vidéo ayant la plus grande valeur sera affiché. Vous avez uniquement sélectionné le id du jeu vidéoavec la plus grande valeur. Dans la deuxième partie de la requête, les identifiants de jeux vidéo travaillant avec plus de 5 développeurs sont sélectionnés. Encore une fois, aucun en-tête de sélection n'est connecté à la requête SQL externe.

Requête modifiée :

SELECT videogameid,title
FROM videogames WHERE videogameid IN
(SELECT videogameid
FROM workson
GROUP BY videogameid
HAVING COUNT(DISTINCT developerid)>5
);

Cette requête affiche l'ID et le titre du jeu vidéo avec plus de 5 développeurs

Autre requête :

SELECT COUNT(developerid) AS dev_count,videogameid FROM workson GROUP BY videogameid
ORDER BY dev_count DESC LIMIT 1;

Cela montre l'ID du jeu vidéo et le nombre de développeurs pour le jeu vidéo sélectionné avec le plus de développeurs. Pas de titre .

Si on veut voir le titre :

SELECT videogameid,title FROM videogames WHERE videogameid IN
(SELECT videogameid FROM (SELECT COUNT(developerid) AS count,videogameid FROM workson GROUP BY videogameid
ORDER BY COUNT(developerid) DESC LIMIT 1) AS T);

Cette requête affiche les titres et les identifiants de jeux vidéo avec le plus de développeurs.

Derniers téléchargements
Plus>
effets Web
Code source du site Web
Matériel du site Web
Modèle frontal