AVG
AVG считает среднее значение столбца. Работаем с tutorial.aapl_historical_stock_price и tutorial.crunchbase_companies.
Среднее по столбцу
Заголовок раздела «Среднее по столбцу»SELECT AVG(high) AS avg_highFROM tutorial.aapl_historical_stock_price;AVG работает только с числами. Для текста будет ошибка.
AVG и NULL
Заголовок раздела «AVG и NULL»AVG пропускает NULL. Он делит сумму на число непустых значений. Это важно: NULL не равен нулю.
SELECT AVG(funding_total_usd) AS avg_funding, SUM(funding_total_usd) / COUNT(*) AS wrong_avgFROM tutorial.crunchbase_companies;| avg_funding | wrong_avg |
|---|---|
| 18478604 | 14918922 |
Второе число меньше. Оно делит сумму на все 66368 компаний, в том числе на тех, у кого нет данных.
Практика
Заголовок раздела «Практика»Решайте сами, без AI. Сначала напишите запрос, потом сверьтесь с проверкой, и только потом открывайте решение.
Задание 1
Заголовок раздела «Задание 1»Напишите запрос, который посчитает средний дневной объём торгов (volume) акций Apple.
Проверка: около 19259400.98.
Решение
SELECT AVG(volume) AS avg_volumeFROM tutorial.aapl_historical_stock_price;Задание 2
Заголовок раздела «Задание 2»Посчитайте среднюю цену закрытия (close) только за 2014 год.
Проверка: около 295.40.
Решение
SELECT AVG(close) AS avg_close_2014FROM tutorial.aapl_historical_stock_priceWHERE year = 2014;Задание 3
Заголовок раздела «Задание 3»Посчитайте, сколько в среднем денег получили компании в таблице tutorial.crunchbase_companies, у которых funding_total_usd не NULL. Сравните с AVG(COALESCE(funding_total_usd, 0)).
Проверка: первое число около 18478604, второе около 14918922.
Решение
SELECT AVG(funding_total_usd) AS avg_known, AVG(COALESCE(funding_total_usd, 0)) AS avg_zeroFROM tutorial.crunchbase_companies;