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


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

Область применения:флажок Databricks SQL флажок Databricks Runtime

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

Синтаксис

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

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

Аргументы

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

Возвраты

BIGINT.

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

Если указан ALL, функция возвращает число всех values. В случае * этого включает в себя содержащиеся 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