Поделиться через


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

Применяется к:отметка Databricks SQL отметка 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