Агрегатная функция count

Область применения:check marked yes Databricks SQL check marked yes Databricks Runtime

Возвращает число извлеченных строк в группе.

Синтаксис

count ( [DISTINCT | ALL] * ) [FILTER ( WHERE cond ) ]
count ( [DISTINCT | ALL] expr [, ...] ) [FILTER ( WHERE cond ) ]

Эту функцию также можно вызвать как функцию окна с помощью OVER предложения.

Аргументы

  • *: подсчитывает все строки в группе.
  • expr: подсчитывает все строки, для которых все exprN не NULLявляются.
  • cond: необязательное логическое выражение для фильтрации строк, используемых для агрегирования.

Возвраты

BIGINT.

Если DISTINCT задано, функция возвращает количество уникальных значений, которые не содержат NULL.

Если ALL задано, функция возвращает число всех значений. В случае * этого включает в себя содержащиеся NULL.

Примеры

> SELECT count(*) FROM VALUES (NULL), (5), (5), (20) AS tab(col);
 4

> SELECT count(1) FROM VALUES (NULL), (5), (5), (20) AS tab(col);
 4

> SELECT count(col) FROM VALUES (NULL), (5), (5), (20) AS tab(col);
 3

> SELECT count(col) FILTER(WHERE col < 10)
    FROM VALUES (NULL), (5), (5), (20) AS tab(col);
 2

> SELECT count(DISTINCT col) FROM VALUES (NULL), (5), (5), (10) AS tab(col);
 2

> SELECT count(col1, col2)
    FROM VALUES (NULL, NULL), (5, NULL), (5, 1), (5, 2), (5, 2), (NULL, 2), (20, 2) AS tab(col1, col2);
 4

> SELECT count(DISTINCT col1, col2)
    FROM VALUES (NULL, NULL), (5, NULL), (5, 1), (5, 2), (NULL, 2), (20, 2) AS tab(col1, col2);
 3