--2.1 Вывести минимальную площадь стран.
SELECT
MIN(Площадь) AS Мин_площадь
FROM Countries;
--2.2 Вывести наибольшую по населению страну в Северной и Южной Америке.
SELECT TOP 1
Название,
Население
FROM Countries
WHERE Континент IN ('Северная Америка', 'Южная Америка')
ORDER BY Население DESC;
--2.3 Вывести среднее население стран. Результат округлить до одного знака.
SELECT
ROUND(AVG(CAST(Население AS FLOAT)), 1) AS Среднее_население
FROM Countries;
--2.4 Вывести количество стран, у которых название заканчивается на «ан», кроме стран, у которых название заканчивается на «стан».
SELECT
COUNT(*) AS Количество
FROM Countries
WHERE Название LIKE '%ан'
AND Название NOT LIKE '%стан';
--2.5 Вывести количество континентов, где есть страны, название которых начинается с буквы «Р».
SELECT
COUNT(DISTINCT Континент) AS Количество_Континентов
FROM Countries
WHERE LEFT(Название, 1) = 'Р';
--2.6 Сколько раз страна с наибольшей площадью больше, чем страна с наименьшей площадью?
SELECT
CAST(MAX(Площадь) AS FLOAT) / MIN(Площадь) AS Во_сколько_раз
FROM Countries;
--2.7 Вывести количество стран с населением больше, чем 100 млн. чел. на каждом континенте. Результат отсортировать по количеству стран по возрастанию.
SELECT
Континент,
COUNT(Название) AS Количество_Стран
FROM Countries
WHERE Население > 100000000
GROUP BY Континент
ORDER BY Количество_Стран ASC;
--2.8 Вывести количество стран по количеству букв в названии. Результат отсортировать по убыванию.
SELECT
LEN(Название) AS Длина_Названия,
COUNT(*) AS Количество_Стран
FROM Countries
GROUP BY LEN(Название)
ORDER BY Количество_Стран DESC;
--2.9 Ожидается, что через 20 лет население мира вырастет на 10%. Вывести список континентов с прогнозируемым населением.
SELECT
Континент,
FLOOR(SUM(Население) * 1.1) AS Прогнозируемое_Население
FROM Countries
GROUP BY Континент;
--2.10 Вывести список континентов, где разница по площади между наибольшими и наименьшими странами не более в 10000 раз.
SELECT
Континент
FROM Countries
GROUP BY Континент
HAVING MAX(Площадь) <= 10000 * MIN(Площадь);
--2.11 Вывести среднюю длину названий Африканских стран.
SELECT
AVG(CAST(LEN(Название) AS FLOAT)) AS Средняя_длина_названия
FROM Countries
WHERE Континент = 'Африка';
--2.12 Вывести список континентов, у которых средняя плотность среди стран с населением более 1 млн. чел. больше, чем 30 чел. на кв. км.
SELECT
Континент
FROM Countries
WHERE Население > 1000000
GROUP BY Континент
HAVING AVG(CAST(Население AS FLOAT) / Площадь) > 30;