Mysql
 sql >> база данни >  >> RDS >> Mysql

MySQL световна база данни Опитвам се да избегнем подзаявка

Това е проблемът с „най-големия n-на-група“, който се появява често в 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;

Обяснение:направете присъединяване, търсейки държава c2 който има същия континент и по-голямо население. Ако не можете да намерите такъв (което е посочено от външното съединение, връщащо NULL за всички колони на c2 ) след това c1 трябва да е страната с най-голямо население на този континент.

Имайте предвид, че това може да намери повече от една държава на континент, ако има равенство за позиция №1. С други думи, може да има две държави, за които не съществува трета държава с по-голямо население.




  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. Преобразувайте изхода на MySQL заявка в utf8

  2. MyISAM срещу InnoDB за бързи вмъквания и композитен уникален ключ

  3. Как да се свържа с MySQL база данни от Clojure?

  4. Как да променя стойността за innodb_buffer_pool_size в MySQL на Mac OS?

  5. Ефективен начин за симулиране на пълно външно присъединяване в MySQL?