Mysql
 sql >> Baza danych >  >> RDS >> Mysql

Światowa baza danych MySQL Próba uniknięcia podzapytania

To jest "największy problem na grupę", który często pojawia się na 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;

Wyjaśnienie:wykonaj sprzężenie w poszukiwaniu kraju c2 który ma ten sam kontynent i większą populację. Jeśli nie możesz go znaleźć (co jest wskazywane przez sprzężenie zewnętrzne zwracające NULL dla wszystkich kolumn c2 ) następnie c1 musi być krajem o największej liczbie ludności na tym kontynencie.

Zauważ, że może to znaleźć więcej niż jeden kraj na kontynent, jeśli jest remis na pierwszej pozycji. Innymi słowy, mogą istnieć dwa kraje, dla których nie istnieje kraj trzeci z większą liczbą ludności.




  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. Jak używać BIGINT jako automatycznego przyrostowego klucza głównego w Laravel 4?

  2. Zastąp nazwę klucza obcego dziedziczenia połączonego za pomocą JPA/Hibernacji

  3. Problem z bazą danych Laravel 5

  4. Symbole, o których powinienem wiedzieć w przypadku wstrzykiwania SQL

  5. Automatyczne przycinanie danych CHAR przy wstawianiu do kolumny VARCHAR