Загрузка данных


--8.1 Вывести список стран и процентное соотношение площади каждой из них к общей площади всех стран мира.
SELECT 
    Название, 
    Столица, 
    Площадь, 
    Население, 
    Континент,
    ROUND(CAST(Площадь AS FLOAT) * 100 / (SELECT SUM(Площадь) FROM Countries), 3) AS Процент_Площади
FROM Countries
ORDER BY Процент_Площади DESC;

--8.2 Вывести список стран мира, плотность населения которых больше, чем средняя плотность населения всех стран мира.
SELECT 
    Название, 
    Столица, 
    Площадь, 
    Население, 
    Континент
FROM Countries
WHERE CAST(Население AS FLOAT) / Площадь > (
    SELECT AVG(CAST(Население AS FLOAT) / Площадь)
    FROM Countries
);

--8.3 С помощью подзапроса вывести список европейских стран, население которых меньше 5 млн. чел.
SELECT 
    Название, 
    Столица, 
    Площадь, 
    Население, 
    Континент
FROM (
    SELECT Название, Столица, Площадь, Население, Континент
    FROM Countries
    WHERE Континент = 'Европа'
) AS А
WHERE Население < 5000000;

--8.4 Вывести список стран и процентное соотношение их площади к суммарной площади той части мира, где они находятся.
SELECT 
    А.Название, 
    А.Столица, 
    А.Площадь, 
    А.Население, 
    А.Континент,
    ROUND(CAST(А.Площадь AS FLOAT) * 100 / (
        SELECT SUM(Площадь)
        FROM Countries Б
        WHERE Б.Континент = А.Континент
    ), 3) AS Процент_Площади
FROM Countries А
ORDER BY Процент_Площади DESC;

--8.5 Вывести список стран мира, площадь которых больше, чем средняя площадь стран той части света, где они находятся.
SELECT 
    Название, 
    Столица, 
    Площадь, 
    Население, 
    Континент
FROM Countries А
WHERE Площадь > (
    SELECT AVG(CAST(Площадь AS FLOAT))
    FROM Countries Б
    WHERE Б.Континент = А.Континент
);

--8.6 Вывести список стран мира, которые находятся в тех частях света, средняя плотность населения которых превышает общемировую.
SELECT 
    Название, 
    Столица, 
    Площадь, 
    Население, 
    Континент
FROM Countries
WHERE Континент IN (
    SELECT Континент
    FROM Countries
    GROUP BY Континент
    HAVING AVG(CAST(Население AS FLOAT) / Площадь) > (
        SELECT AVG(CAST(Население AS FLOAT) / Площадь)
        FROM Countries
    )
);

--8.7 Вывести список южноамериканских стран, в которых живет больше людей, чем в любой африканской стране.
SELECT 
    Название, 
    Столица, 
    Площадь, 
    Население, 
    Континент
FROM Countries
WHERE Континент = 'Южная Америка'
  AND Население > ALL (
      SELECT Население
      FROM Countries
      WHERE Континент = 'Африка'
  );

--8.8 Вывести список африканских стран, в которых живет больше людей, чем хотя бы в одной южноамериканской стране.
SELECT 
    Название, 
    Столица, 
    Площадь, 
    Население, 
    Континент
FROM Countries
WHERE Континент = 'Африка'
  AND Население > ANY (
      SELECT Население
      FROM Countries
      WHERE Континент = 'Южная Америка'
  );

--8.9 Если в Африке есть хотя бы одна страна, площадь которой больше 2 млн. кв. км, вывести список всех африканских стран.
SELECT 
    Название, 
    Столица, 
    Площадь, 
    Население, 
    Континент
FROM Countries
WHERE Континент = 'Африка'
  AND EXISTS (
      SELECT *
      FROM Countries
      WHERE Континент = 'Африка'
        AND Площадь > 2000000
  );

--8.10 Вывести список стран той части света, где находится страна «Фиджи».
SELECT 
    Название, 
    Столица, 
    Площадь, 
    Население, 
    Континент
FROM Countries
WHERE Континент = (
    SELECT Континент
    FROM Countries
    WHERE Название = 'Фиджи'
);

--8.11 Вывести список стран, население которых не превышает население страны «Фиджи».
SELECT 
    Название, 
    Столица, 
    Площадь, 
    Население, 
    Континент
FROM Countries
WHERE Население <= (
    SELECT Население
    FROM Countries
    WHERE Название = 'Фиджи'
);

--8.12 Вывести название страны с наибольшим населением среди стран с наименьшей площадью на каждом континенте.
SELECT TOP 1 
    Название, 
    Столица, 
    Площадь, 
    Население, 
    Континент
FROM Countries
WHERE Площадь IN (
    SELECT MIN(Площадь)
    FROM Countries
    GROUP BY Континент
)
ORDER BY Население DESC;