- Функция COUNT (Transact-SQL)
- Синтаксис
- Аргументы
- Типы возвращаемых данных
- Remarks
- Примеры
- A. Использование функции COUNT и параметра DISTINCT
- Б. Использование функции COUNT(*)
- В. Использование функции COUNT(*) совместно с другими статистическими функциями
- Г. Использование предложения OVER
- Примеры: Azure Synapse Analytics и Система платформы аналитики (PDW)
- Д. Использование функции COUNT и параметра DISTINCT
- Е. Использование функции COUNT(*)
- Ж. Использование функции COUNT(*) совместно с другими статистическими функциями
- З. Использование функции COUNT с предложением HAVING
- И. Использование функции COUNT с предложением OVER
- Функция COUNT
- Основные запросы
- Условия выборки
- Группировка
- Сложение строк
- Несколько таблиц
- Длина строк
- Изменение строк
- Поиск по строкам
- Работа с пробелами
- Работа с регистром
- Информация
- Условия
- Полезное
- Разное
- Математические функции
- Списки
- Извлечение части даты
- Получение даты и времени
- Преобразование даты
- Сложение дат
- Тригонометрия
- Отдельные символы
- Системы счисления
- Синтаксис
- Примеры
- Пример
- Пример
- Пример
- Меняем таблицу для примеров
- Пример
- Функция SQL COUNT ()
- Функция COUNT ()
- SQL COUNT строки в таблице
- Выберите COUNT (*) из нескольких таблиц
- SQL COUNT () с именем столбца
- Строки SQL COUNT с определенным пользователем заголовком столбца
- SQL COUNT () с предложением where
- Применение функции COUNT ()
Функция COUNT (Transact-SQL)
Применимо к: SQL Server (все поддерживаемые версии) База данных SQL Azure Управляемый экземпляр SQL Azure Azure Synapse Analytics Параллельное хранилище данных
Эта функция возвращает количество элементов, найденных в группе. Функция COUNT работает подобно функции COUNT_BIG. Эти функции различаются только типами данных в возвращаемых значениях. Функция COUNT всегда возвращает значение типа данных int. Функция COUNT_BIG всегда возвращает значение типа данных bigint.
Синтаксические обозначения в Transact-SQL
Синтаксис
Ссылки на описание синтаксиса Transact-SQL для SQL Server 2014 и более ранних версий, см. в статье Документация по предыдущим версиям.
Аргументы
ALL
Применяет агрегатную функцию ко всем значениям. Аргумент ALL используется по умолчанию.
DISTINCT
Указывает, что функция COUNT возвращает количество уникальных значений, не равных NULL.
expression
Выражение любого типа, кроме image, ntext и text. Обратите внимание, что функция COUNT не поддерживает агрегатные функции и вложенные запросы в выражении.
*
Указывает, что функция COUNT должна учитывать все строки, чтобы определить общее количество строк таблицы для возврата. Функция COUNT(*) не принимает параметры и не поддерживает использование аргумента DISTINCT. Для функции COUNT(*) не требуется параметр expression, так как по определению она не использует сведения о конкретном столбце. Функция COUNT(*) возвращает количество строк в указанной таблице с учетом повторяющихся строк. Она подсчитывает каждую строку отдельно. При этом учитываются и строки, содержащие значения NULL.
OVER ( [ partition_by_clause ] [ order_by_clause ] [ ROW_or_RANGE_clause ] )
partition_by_clause делит результирующий набор, полученный с помощью предложения FROM , на секции, к которым применяется функция COUNT . Если этот параметр не указан, функция обрабатывает все строки результирующего набора запроса как отдельные группы. order_by_clause определяет логический порядок выполнения операции. Дополнительные сведения см. в статье SELECT — предложение OVER (Transact-SQL).
Типы возвращаемых данных
int
Remarks
Функция COUNT(*) возвращает количество элементов в группе. Сюда входят значения NULL и повторяющиеся значения.
Функция COUNT(ALL expression) вычисляет expression для каждой строки в группе и возвращает количество значений, не равных NULL.
Функция COUNT(DISTINCT expression) вычисляет expression для каждой строки в группе и возвращает количество уникальных значений, не равных NULL.
Для возвращаемых значений, которые превышают значение 2^31-1, функция COUNT возвращает ошибку. В таких случаях используйте вместо нее функцию COUNT_BIG .
COUNT — это детерминированная функция, если она используется без _ предложений OVER и ORDER BY. Она не детерминирована при использовании _ с предложениями OVER и ORDER BY. Дополнительные сведения см. в статье Детерминированные и недетерминированные функции.
Примеры
A. Использование функции COUNT и параметра DISTINCT
В этом примере функция возвращает количество различных должностей, которые может иметь сотрудник Компания Adventure Works Cycles.
Б. Использование функции COUNT(*)
В этом примере функция возвращает общее количество сотрудников Компания Adventure Works Cycles.
В. Использование функции COUNT(*) совместно с другими статистическими функциями
В этом примере показано, что функция COUNT(*) работает с другими статистическими функциями в списке SELECT . В этом примере используется база данных AdventureWorks2012.
Г. Использование предложения OVER
В этом примере функции MIN , MAX , AVG и COUNT используются с предложением OVER , чтобы получить статистические значения для каждого из отделов в таблице HumanResources.Department базы данных AdventureWorks2012.
Примеры: Azure Synapse Analytics и Система платформы аналитики (PDW)
Д. Использование функции COUNT и параметра DISTINCT
В этом примере функция возвращает количество различных должностей, которые может иметь конкретный сотрудник компании.
Е. Использование функции COUNT(*)
В этом примере функция возвращает общее количество строк в таблице dbo.DimEmployee .
Ж. Использование функции COUNT(*) совместно с другими статистическими функциями
В этом примере функция COUNT(*) работает с другими статистическими функциями в списке SELECT . Запрос возвращает количество торговых представителей с годовой квотой продаж более 500 000 долл. США и их среднюю квоту продаж.
З. Использование функции COUNT с предложением HAVING
В этом примере функция COUNT используется с предложением HAVING , чтобы получить список подразделений компании, в каждом из которых работает более 15 сотрудников.
И. Использование функции COUNT с предложением OVER
В этом примере функция COUNT используется с предложением OVER , чтобы получить количество продуктов, содержащихся в каждом из указанных заказов на продажу.
Источник
Функция COUNT
Основные запросы
Условия выборки
Группировка
Сложение строк
Несколько таблиц
Длина строк
Изменение строк
Поиск по строкам
Работа с пробелами
Работа с регистром
Информация
Условия
Полезное
Разное
- Типы полей
- Организация базы данных
создание правильной структуры —> - Подзапросы
- SELECT @min_price:=MIN(price),@max_price:=MAX(price) FROM shop; mysql> SELECT * FROM shop WHERE price=@min_price OR price=@max_price; https://habrahabr.ru/post/133781/ тут еще про переменные цикл получается SET @i = 0; SELECT * FROM product WHERE MOD(@i:=@i+1, 2) = 0; —>Переменные sql
Математические функции
Списки
Извлечение части даты
Получение даты и времени
Преобразование даты
Сложение дат
Тригонометрия
Отдельные символы
Системы счисления
Функция COUNT подсчитывает количество записей в таблице.
Условие, по которому будут выбираться записи, задается с помощью команды WHERE.
Команда WHERE не является обязательной, если ее не указать — будут подсчитаны все записи в таблице.
См. также команду DISTINCT, которая позволяет подсчитывать только уникальные значения поля.
См. также команду GROUP BY, которая позволяет группировать записи и затем с помощью COUNT подсчитывать количество в группах.
Синтаксис
Подсчет всех записей:
Подсчет всех записей, где заданное поле не равно NULL:
Только уникальные значения поля:
Примеры
Все примеры будут по этой таблице workers, если не сказано иное:
id айди | name имя | age возраст | salary зарплата |
---|---|---|---|
1 | Дима | 23 | 400 |
2 | Петя | 25 | 500 |
3 | Вася | 23 | 500 |
4 | Коля | 30 | 1000 |
5 | Иван | 27 | 500 |
6 | Кирилл | 28 | 1000 |
Пример
Давайте подсчитаем всех работников с возрастом 23 года:
Результат выполнения SQL запроса:
count результат подсчета |
---|
2 |
Пример
Давайте подсчитаем количество разных зарплат (их будет 3 штуки: 400, 500 и 1000):
Результат выполнения SQL запроса:
count результат подсчета |
---|
3 |
Пример
Давайте подсчитаем одновременно количество разных возрастов и количество разных зарплат:
Результат выполнения SQL запроса:
count1 количество возрастов | count2 количество зарплат |
---|---|
5 | 3 |
Меняем таблицу для примеров
Все примеры ниже будут по этой таблице workers, если не сказано иное:
id айди | name имя | age возраст | salary зарплата |
---|---|---|---|
1 | Дима | 23 | NULL |
2 | Петя | 25 | 500 |
3 | Вася | 23 | NULL |
Пример
Давайте подсчитаем количество всех записей:
Результат выполнения SQL запроса:
count результат подсчета |
---|
3 |
А теперь подсчитаем количество зарплат, не равных NULL:
Источник
Функция SQL COUNT ()
Функция COUNT ()
Функция SQL COUNT () возвращает количество строк в таблице, удовлетворяющих критериям, указанным в предложении WHERE. Он устанавливает количество строк или ненулевых значений столбцов.
COUNT () возвращает 0, если не было совпадающих строк.
Синтаксис:
Приведенный выше синтаксис является общим стандартным синтаксисом SQL 2003 ANSI. Это помогает понять, как используется функция SQL COUNT (). Но разные поставщики баз данных могут по-разному применять функцию COUNT ().
Ниже вы можете видеть, что MySQL, PostgreSQL и Microsoft SQL Server используют тот же синтаксис, что и приведенный выше. Но DB2 и Oracle немного отличаются.
В целом, вы можете использовать * или ALL или DISTINCT или какое-либо выражение вместе с COUNT, чтобы СЧИТАТЬ число строк по какому-либо условию или по всем строкам, в зависимости от аргументов, которые вы используете вместе с функцией COUNT ().
Поддержка СУБД: функция COUNT ()
СУБД | команда |
MySQL | поддержанный |
PostgreSQL | поддержанный |
SQL Server | поддержанный |
оракул | поддержанный |
Синтаксис DB2 и Oracle:
Параметры:
название | Описание |
---|---|
ВСЕ | Относится ко всем значениям. ALL возвращает количество ненулевых значений. |
DISTINCT | Игнорируемые повторяющиеся значения и COUNT возвращает количество уникальных ненулевых значений. |
выражение | Выражение состоит из одной константы, переменной, скалярной функции или имени столбца, а также может быть фрагментами запроса SQL, которые сравнивают значения с другими значениями. Выражение любого типа, кроме текста или изображения. Агрегатные функции и подзапросы не допускаются. |
* | СЧИТЫВАЕТ все строки в целевой таблице независимо от того, содержат ли они значения NULL. |
Синтаксическая диаграмма — функция COUNT ()
На последующих страницах мы обсудили, как применять COUNT () с различными предложениями SQL. Для этих приложений мы использовали Oracle 10g Express Edition.
Важная вещь о функции COUNT ():
Когда * используется для COUNT (), все записи (строки) считаются COUNTed, если некоторое содержимое NULL, но COUNT (column_name) не считает COUNT запись, если ее поле имеет значение NULL. Смотрите следующие примеры:
SQL COUNT строки в таблице
В следующем примере используется символ звездочки (*), за которым следует SQL COUNT (), который указывает все строки таблицы, даже если есть какое-либо значение NULL.
Пример таблицы: заказы
Чтобы получить количество строк в таблице ‘orders’, можно использовать следующую инструкцию SQL:
Код SQL:
Иллюстрированная презентация:
Выберите COUNT (*) из нескольких таблиц
Следующий запрос COUNT количество строк из двух разных таблиц (здесь мы используем сотрудников и отделов) с помощью команды COUNT (*).
Код SQL:
SQL COUNT () с именем столбца
В этом примере функция SQL COUNT () исключает значения NULL для определенного столбца, если столбец указан в качестве аргумента в скобках функции COUNT.
Образец таблицы: listofitem
Чтобы получить количество строк в таблице listofitem со следующим условием:
1. COUNT количество строк для столбца «coname»
можно использовать следующий оператор SQL:
Код SQL:
Объясните:
Приведенный выше оператор СЧИТАЕТ те строки для столбца coname, которые не равны NULL.
Строки SQL COUNT с определенным пользователем заголовком столбца
Получить количество строк в таблице «заказов» при следующем условии —
1. результат должен отображаться с заголовком «Количество рядов»,
можно использовать следующий оператор SQL:
Код SQL:
SQL COUNT () с предложением where
Предложение WHERE может использоваться вместе с функцией SQL COUNT (). выбрать конкретные записи из таблицы в соответствии с заданным условием.
Пример:
Пример таблицы: заказы
Чтобы получить количество строк в таблице «заказов» при следующем условии —
1. ord_amount против заказа более 1500,
можно использовать следующий оператор SQL:
Применение функции COUNT ()
На последующих страницах мы обсудили, как применять COUNT () с различными предложениями SQL. Для этих приложений мы использовали Oracle 10g Express Edition.
Страница COUNT with DISTINCT обсуждает, как применять функцию COUNT с DISTINCT, а также обсуждает, как применять функцию COUNT с предложением ALL. В отличие от использования *, когда используется ALL, значения NULL не выбираются.
На странице COUNT HAVING рассказывается, как применить функцию COUNT с предложением HAVING, а также с HAVING и GROUP BY.
Страница COUNT с GROUP BY описывает, как применить функцию COUNT с GROUP BY в порядке возрастания и в порядке убывания.
Примечание. Выводы указанного оператора SQL, показанного здесь, взяты с использованием Oracle Database 10g Express Edition.
Вот слайд-презентация всех агрегатных функций.
Упражнения по SQL
Хотите улучшить вышеуказанную статью? Вносите свои заметки / комментарии / примеры через Disqus.
Предыдущая: Агрегатные функции
Следующая: COUNT с отличным
Источник