MAX, MIN retourne un tableau - SQL/NoSQL - Programmation
Marsh Posté le 18-12-2010 à 20:03:01
SELECT
cont,pays,population
FROM bddpays bp
WHERE population = ( SELECT max(b2.population) FROM bddpays bp2 where bp2.cont = bp.cont)
Marsh Posté le 19-12-2010 à 12:27:39
A chaque fois que vous faites une sous-requête corrélée, Dieu tue un chaton.
Depuis le temps qu'on le répète que les sous-requetes c'est LE MAL
C'est l'Instrument des Légions de Satan destiné à tourmenter les DBA dans le "7ième Enfer des Requetes Lentes"
La méthode correcte est de faire un "left join ... where is null"
SELECT bp.cont, bp.pays, bp.population |
Marsh Posté le 19-12-2010 à 12:42:16
Ok pas de sous-requête corrélée..
Par contre, je ne suis pas assez calée en SQL pour comprendre cette nouvelle requête.
Actuellement, tout est dans une même base. A quoi correspond bp ? Faut-il que je crée cette base, mais avec quoi dedans ?
Marsh Posté le 20-12-2010 à 21:21:45
Personne pour m'expliquer en quelques mots ou même un lien ?
Marsh Posté le 20-12-2010 à 21:28:40
bd est un alias pour la table bddpays
la requete de smaragdus est en fait construite en se disant qu'il cherche un element de bdd pays qui n'en a aucun de plus grand
Marsh Posté le 20-12-2010 à 23:13:51
smaragdus a écrit : A chaque fois que vous faites une sous-requête corrélée, Dieu tue un chaton.
|
Merci pour le fou rire !!!
Marsh Posté le 18-12-2010 à 16:22:22
Bonjour,
J'ai une base avec par exemple 3 colonnes : pays, continent, population. Je cherche à retourner sous la forme d'un tableau avec ces 3 colonnes la population maximale du pays en fonction du continent
Si je tape cette requête :
Voici le résultat (une seule ligne correspondant au pays le plus peuplé de la base)
Population; Continent; Pays
1.330.044.605; asie; chine
Mais si je fais ceci :
le résultat me retourne bien la population maximale par continent mais il y a une erreur pour le pays. Le pays affiché est en en fait le premier dans l'ordre alphabétique et non celui qui a la plus grande population...
Population; Continent; Pays
138.283.240; afrique; afrique-du-sud -> le résultat devrait être nigeria
303.824.646; ameriques; anguilla -> ici USA
1.500; antarctique; antarctique
1.330.044.605; asie; afghanistan -> chine
140.702.094; europe; albanie
20.600.856; oceanie; australie
Auriez-vous une solution pour afficher le nom du pays relatif à la population maximale et à son continent ?
Merci par avance,