Podzapytanie a INNER JOIN
Wyniki skorelowanego podzapytania można często uzyskać za pomocą INNER JOIN. W zależności od wymagań, INNER JOIN może być wydajniejszy, ponieważ przetwarza dane tylko raz – natomiast skorelowane podzapytanie jest wykonywane osobno dla każdego wiersza zapytania zewnętrznego.
Chcesz poznać liczbę ludności w 2017 roku dla największego miasta w każdym kraju na świecie. Informacje te możesz pobrać z bazy danych Earthquakes – tabela Nations posłuży jako zapytanie zewnętrzne, a tabela Cities znajdzie się w podzapytaniu.
Najpierw utwórz to zapytanie jako skorelowane podzapytanie, a następnie przepisz je z użyciem INNER JOIN.
To ćwiczenie jest częścią kursu
Poprawa wydajności zapytań w SQL Server
Interaktywne ćwiczenie praktyczne
Spróbuj tego ćwiczenia, uzupełniając ten przykładowy kod.
SELECT
n.CountryName,
(SELECT MAX(c.___) -- Add 2017 population column
FROM Cities AS c
-- Outer query country code column
WHERE c.CountryCode = n.___) AS BiggestCity
FROM ___ AS n; -- Outer query table