COUNT ФУНКЦИЯ

В этом учебном пособии вы узнаете, как использовать Oracle/PLSQL функцию COUNT с синтаксисом и примерами.

Описание

Oracle/PLSQL функция COUNT возвращает количество возращенных запросом строк.

Синтаксис

Синтаксис Oracle/PLSQL функции COUNT:

SELECT COUNT(aggregate_expression)
FROM tables
[WHERE conditions];

ИЛИ синтаксис функции COUNT с группировке результатов по одному или нескольким столбцам:

SELECT expression1, expression2, ... expression_n,
COUNT(aggregate_expression)
FROM tables
[WHERE conditions]
GROUP BY expression1, expression2, ... expression_n;

Параметры или аргументы

expression1, expression2, ... expression_n Выражения, которые не инкапсулированы в функции COUNT и должны быть включены в оператор GROUP BY в конце SQL предложения.

aggregate_expression - это столбец или выражение, чьи ненулевые значения будут учитываться.

tables - таблицы, из которых вы хотите получить записи. В оперторе FROM должна быть указана хотя бы одна таблица.

WHERE conditions - необязательный. Это условия, которые должны быть соблюдены для выбранных записей.

Функция COUNT возвращает numeric значение.

Включает только NOT NULL значения

Не все это понимают, но функция COUNT будет включать в счет только те записи, в которых значение выражения COUNT (expression) НЕ равно NULL. Когда выражение содержит значение NULL, оно не включается в вычисления COUNT.

Давайте рассмотрим пример функции COUNT, который демонстрирует, как значения NULL оцениваются функцией COUNT.

Например, если у вас есть следующая таблица с названием suppliers:

supplier_id supplier_name state
1 IBM CA
2 Microsoft
3 NVIDIA

И если вы запустите следующий оператор SELECT, который использует функцию COUNT:

Этот пример COUNT вернет 3, поскольку все значения supplier_id в результирующем наборе запроса не равны NULL.

Однако, если вы запустили следующий оператор SELECT, который использует функцию COUNT:

Этот пример COUNT будет возвращать только 1, так как только одно значение state в наборе результатов запроса имеет значение NOT NULL. Это будет первый ряд, где state = 'CA'. Это единственная строка, которая включена в расчет функции COUNT.

Применение

Функцию COUNT можно использовать в следующих версиях Oracle/PLSQL:

  • Oracle 12c, Oracle 11g, Oracle 10g, Oracle 9i, Oracle 8i

Пример - с одним полем

Рассмотрим некоторые примеры Oracle функции COUNT чтобы понять, как использовать функцию COUNT в Oracle/PLSQL.

Например, вы можете узнать, сколько сотрудников имеют зарплату выше 57000$ в год.

В этом примере функции COUNT мы назвали выражение COUNT (*) as "Number of employees". В результате "Number of employees" будет отображаться в качестве имени поля при возврате набора результатов.

Пример - использование DISTINCT

Вы можете использовать оператор DISTINCT в функции COUNT. Например, приведенный ниже оператор SQL возвращает количество уникальных departments (отделов), в которых хотя бы один employee (сотрудник) зарабатывает более 48000$ в год.

Опять же, поле COUNT (DISTINCT department) называется "Unique departments". Это имя поля, которое будет отображаться в наборе результатов.

Пример - использование GROUP BY

В некоторых случаях вам потребуется использовать оператор GROUP BY с функцией COUNT.

Например, вы также можете использовать функцию COUNT, чтобы вернуть название department (отдела) и количество employees (сотрудников в соответствующем отделе), которые находятся в state (штате) 'CA'.

Поскольку в вашем операторе SELECT указан один столбец, который не инкапсулирован в функции COUNT, вы должны использовать оператор GROUP BY. Поэтому поле department должно быть указано в операторе GROUP BY.