Загрузка данных
--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;