Перейти к содержимому
TelegramGitHub

COUNT

COUNT считает строки. Это самая простая агрегатная функция, и результат легко проверить. В этом уроке работаем с tutorial.aapl_historical_stock_price и с tutorial.crunchbase_companies.

SELECT COUNT(*)
FROM tutorial.aapl_historical_stock_price;

Запрос вернёт 3773. Это число всех строк. COUNT(1) даёт тот же результат. Какой вариант выбрать — дело вкуса.

COUNT(столбец) считает только строки, где значение не NULL.

SELECT COUNT(*) AS all_rows,
COUNT(homepage_url) AS with_homepage
FROM tutorial.crunchbase_companies;
all_rowswith_homepage
6636861310

У 5058 компаний сайт не указан. Это строки, где homepage_url равен NULL.

COUNT работает и для текста, и для дат:

SELECT COUNT(date) AS count_of_date
FROM tutorial.aapl_historical_stock_price;

COUNT считает непустые строки, а не разные значения. Для разных значений нужен COUNT(DISTINCT ...). Он описан в уроке про DISTINCT.

Без псевдонима столбец называется count_star(). Дайте ему понятное имя через AS. Пишите строчными буквами и с _.

SELECT COUNT(date) AS "Count Of Date"
FROM tutorial.aapl_historical_stock_price;

Если нужны пробелы, берите двойные кавычки. Лучше обойтись без них.

Решайте сами, без AI. Сначала напишите запрос, потом сверьтесь с проверкой, и только потом открывайте решение.

Напишите запрос, который посчитает непустые значения в каждом столбце таблицы tutorial.aapl_historical_stock_price: year, month, open, high, low, close, volume. По этим числам определите, в каком столбце больше всего NULL.

Проверка: в каждом столбце 3773. В наших данных NULL нет ни в одном столбце.

Решение
SELECT COUNT(year) AS year,
COUNT(month) AS month,
COUNT(open) AS open,
COUNT(high) AS high,
COUNT(low) AS low,
COUNT(close) AS close,
COUNT(volume) AS volume
FROM tutorial.aapl_historical_stock_price;

В таблице tutorial.crunchbase_companies посчитайте компании, у которых заполнено funding_total_usd.

Проверка: 53583.

Решение
SELECT COUNT(funding_total_usd) AS companies_with_funding
FROM tutorial.crunchbase_companies;

Одним запросом посчитайте, сколько в tutorial.crunchbase_companies компаний без category_code. Не используйте WHERE.

Проверка: 3148.

Решение
SELECT COUNT(*) - COUNT(category_code) AS no_category
FROM tutorial.crunchbase_companies;