count функция SQLite

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

Описание

SQLite функция count возвращает количество выражений.

Синтаксис

Синтаксис функции count в SQLite:

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 может использоваться в следующих версиях SQLite:

  • SQLite 3.8.6, SQLite 3.8.x, SQLite 3.7.x, SQLite 3.6.x

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

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

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

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

employee_id last_name first_name department_id
1 Smith Samanta 30
2 Anderson Gans 999
3 Johnson Tom null

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

Этот пример count вернет 3, так как все значения employee_id в наборе результатов запроса NOT NULL.

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

В этом примере count будет возвращено только 2, поскольку только два значения department_id в наборе результатов запроса NOT NULL. Это будет первая запись, где department_id - 30, а вторая запись, где department_id - 999. Третья запись в таблице не будет включена в вычисление функции count, потому что значение department_id равно NULL.

Пример - с одним выражением

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

В этом примере функции count мы назвали выражение count(*) как "Number of employees".

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

Вы можете использовать оператор DISTINCT в функции count. В примере, приведенном ниже, оператор SQL возвращает количество уникальных отделов, в которых хотя бы один сотрудник зарабатывает более 35000 $ в год.

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

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

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

Например, вы также можете использовать функцию count, чтобы вернуть название отдела и количество сотрудников (в соответствующем отделе), у которых Google.com является любимым сайтом.

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