sql >> Database teknologi >  >> RDS >> Mysql

MySQL verdensdatabase Forsøger at undgå underforespørgsler

Dette er det "største-n-per-gruppe"-problem, der ofte dukker op på StackOverflow.

SELECT c1.Continent, c1.Name
FROM Country c1
LEFT OUTER JOIN Country c2
  ON (c1.continent = c2.continent AND c1.Population < c2.Population)
WHERE c2.continent IS NULL;

Forklaring:Foretag en joinforbindelse og led efter et land c2 der har det samme kontinent og en større befolkning. Hvis du ikke kan finde en (hvilket er angivet ved at den ydre joinforbindelse returnerer NULL for alle kolonner i c2 ) derefter c1 skal være det land med den højeste befolkning på det kontinent.

Bemærk, at dette kan finde mere end ét land pr. kontinent, hvis der er uafgjort til #1-positionen. Med andre ord kan der være to lande, for hvilke der ikke findes et tredjeland med en større befolkning.




  1. Hvordan går man gennem en række input i en form?

  2. Spring Boot Query-annotering med nativeQuery virker ikke i Postgresql

  3. Django + MySQL - Admin Site - Tilføj bruger - Operational Error - SAVEPOINT eksisterer ikke

  4. Opdel en kolonne i flere rækker