Отличие count(*) от cound (id)
Функция COUNT: считаем строки правильно
Начнем с базы. COUNT — это агрегатная функция. Она подсчитывает количество значений, отличных от NULL, в указанном столбце.
Но есть нюанс. Единственная функция, которая не смотрит на NULL'ы — это COUNT(*). Она считает вообще все строки в таблице. Без исключений.
Как это работает на практике?
Давай посмотрим на примере. Допустим, у нас есть таблица с пользователями. В столбце id у каждого есть значение. А вот столбец email может быть пустым (NULL).
COUNT(id)— вернет количество строк, где id не равен NULL. То есть всех пользователей.COUNT(email)— вернет только тех, у кого указан email. Те, у кого email = NULL, в подсчет не попадут.COUNT(*)— вернет все строки таблицы. Даже если во всех колонках NULL. Просто количество записей.
Запомни:COUNT(id)считает строки, где id существует. АCOUNT(*)считает строки как таковые. Разница есть.
Коротко о главном
COUNT(id) — только не-NULL значения в колонке id.
COUNT(*) — все строки таблицы. Без фильтрации по NULL.
Что еще посмотреть по SQL Server
Как кешировать в SQL результаты сложных операций
Как искать зависимости объектов в SQL Server
SQL Server. Как вызвать процедуру с переменным именем и результаты вставить в таблицу
Формирование сложного JSON объекта через SELECT в SQL Server
Как вставить данные в таблицу БД из таблицы на другом сервере
Использование CPU в SQL Server Express Edition
Как форматировать код sql в sql server management studio
Чем отличается For JSON Auto от For JSON Path
Дополнительный заработок для разработчиков на T-SQL
- Шаг 1. Создать концепт проекта
- Шаг 2. Получить оценку бюджета (КП)
- Шаг 3. Заключить договор
- Шаг 4. Создать совместно техническое задание
- Шаг 5. Поэтапная реализация проекта