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)