-- Analytic Function Syntax COUNT ( { [expression] | * }) OVER ([] [])

向所有值应用此聚合函数。 ALL 为默认值。

DISTINCT

指定 COUNT 返回唯一非 null 值的数目。

expression

是任何类型或列名的表达式。 不允许使用聚合函数和子查询。

* (通配符表达式)

指定应对所有事件进行计数,以返回组中的事件总数。 COUNT(*) 不需要任何参数。 COUNT(*) 不需要表达式参数,因为根据定义,它不使用有关任何特定列的信息。 COUNT (*) 返回事件数,而不会删除重复项。 它单独对每个事件进行计数。 这包括包含 null 值的事件,为 null 值返回 0。

OVER ([<PARTITION BY 子句><LIMIT DURATION 子句> [<WHEN 子句>]]

确定应用 COUNT 的行组。 PARTITION BY 子句指定具有相同分区键的行将组合在一起。 LIMIT DURATION 子句指定组中包含的历史记录量。 WHEN 子句指定要包含在组中的行的布尔条件。 有关用法的更多详细信息,请参阅 OVER 子句

  • COUNT (*) 返回事件数,包括 NULL 值和重复值。

  • COUNT (ALL 表达式) 和 COUNT (表达式) 计算组中每个事件的表达式并返回非 null 值的数目。

  • COUNT (DISTINCT 表达式) 计算组中每个事件的表达式,并返回唯一的非 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 子句

  •