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


COUNT (Azure Stream Analytics)

Возвращает количество элементов в группе. Функция COUNT всегда возвращает значение типа bigint.

Синтаксис

-- Aggregate Function Syntax
COUNT ( { [ [ALL | DISTINCT] expression ] | * } ) 

-- Analytic Function Syntax
COUNT ( { [expression] | * }) OVER ([<PARTITION BY clause>] <LIMIT DURATION clause> [<WHEN clause>])
  

Аргументы

ALL

Применяет агрегатную функцию ко всем значениям. ALL является параметром по умолчанию.

DISTINCT

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

expression

— выражение любого типа или имя столбца. Агрегатные функции и вложенные запросы не разрешены.

* (выражение с подстановочными знаками)

Указывает, что все события должны быть подсчитаны для возврата общего числа событий в группе. Функция Count(*) не имеет параметров. Для функции Count(*) не требуется параметр выражения, поскольку по определению она не использует сведения о каком-либо конкретном столбце. ФУНКЦИЯ COUNT(*) возвращает количество событий без удаления дубликатов. Каждое событие подсчитывается отдельно. Сюда входят события, содержащие значения NULL, возвращающие значение 0 для значений NULL.

OVER ([<ПРЕДЛОЖЕНИЕ<>PARTITION BY LIMIT DURATION> [<ПРЕДЛОЖЕНИЕ> WHEN]]

Определяет группу строк, к которым применяется ФУНКЦИЯ COUNT. Предложение PARTITION BY указывает, что строки с одним ключом секции будут сгруппированы. Предложение LIMIT DURATION указывает, какой объем журнала включен в группу. Предложение WHEN задает логическое условие для строк, которые должны быть включены в группу. Дополнительные сведения об использовании см. в предложении OVER .

Комментарии

  • ФУНКЦИЯ СЧЁТ(*) возвращает количество событий, включая значения NULL и дубликаты.

  • Аргументы COUNT(ALL expression) и COUNT(expression) вычисляют выражение для каждого события в группе и возвращают количество значений, отличных от NULL.

  • Функция COUNT(DISTINCT expression) вычисляет выражение для каждого события в группе и возвращает количество уникальных значений, отличных от NULL.

  • ФУНКЦИЯ COUNT(input_stream) эквивалентна ФУНКЦИИ COUNT() и COUNT(*), но функция COUNT(DISTINCT input_stream) подсчитывает только уникальные события.

  • ФУНКЦИЯ COUNT(DISTINCT) не поддерживается в качестве аналитической функции. То есть нельзя использовать выражение COUNT(DISTINCT) с предложением OVER.

Типы возвращаемых данных

BIGINT

Примеры

SELECT System.Timestamp() AS OutTime, TollId, COUNT(*)   
FROM Input TIMESTAMP BY EntryTime  
GROUP BY TollId, TumblingWindow(minute,3)  

См. также:

Предложение GROUP BY
Предложение OVER