АгрегатыНачальный
COUNT
Считает количество строк или непустых значений в группе.
Синтаксис
COUNT(*) | COUNT(column) | COUNT(DISTINCT column)Объяснение
COUNT(*) считает все строки включая NULL. COUNT(column) считает только строки где column IS NOT NULL. COUNT(DISTINCT column) — уникальные непустые значения.
COUNT всегда возвращает число (не NULL), даже если строк нет — вернёт 0.
Пример
SELECT
COUNT(*) AS total_rows,
COUNT(email) AS with_email,
COUNT(DISTINCT country) AS unique_countries
FROM users;Связанные термины
AVGВозвращает среднее арифметическое числовых значений. NULL игнорируются.GROUP BYГруппирует строки с одинаковыми значениями для применения агрегатных функций.NULL / IS NULLNULL означает отсутствие значения. Для проверки используется IS NULL, а не = NULL.SUM / AVG / MIN / MAXАгрегатные функции для вычисления суммы, среднего, минимума и максимума числовых значений.
Анекдоты по теме
— Чем HAVING отличается от WHERE? — WHERE фильтрует строки ДО группировки. HAVING — ПОСЛЕ. — Как охранник на входе и на выходе? — Именно. И оба нужны.
— Что такое ROLLUP? — Групповая агрегация с промежуточными итогами. SELECT year, month, SUM(sales) FROM data GROUP BY ROLLUP(year, month); — Добавляет строки: итого за год и итого за всё. — Как сводная таблица в Excel? — Именно. Только в SQL.
— Чем отличается COUNT() от COUNT(колонка)? COUNT() считает всех, даже если у кого-то всё пустое. COUNT(колонка) считает только тех, у кого в этой колонке что-то написано.