RuleGo RuleGo
🏠首页
  • 快速入门
  • 规则链
  • 标准组件
  • 扩展组件
  • 自定义组件
  • 可视化
  • RuleGo-Server
  • RuleGo-MCP-Server
  • AOP
  • 触发器
  • 高级主题
  • 性能
  • 标准组件
  • 扩展组件
  • 自定义组件
  • 流式计算
  • 组件市场
  • 概述
  • 快速入门
  • 路由
  • DSL
  • API
  • Options
  • 组件
🔥编辑器 (opens new window)
  • 可视化编辑器 (opens new window)
  • RuleGo-Server (opens new window)
  • 🌊StreamSQL
  • ❓问答

    • FAQ
💖支持
👥加入社区
  • Github (opens new window)
  • Gitee (opens new window)
  • GitCode (opens new window)
  • 更新日志 (opens new window)
  • English
  • 简体中文
🏠首页
  • 快速入门
  • 规则链
  • 标准组件
  • 扩展组件
  • 自定义组件
  • 可视化
  • RuleGo-Server
  • RuleGo-MCP-Server
  • AOP
  • 触发器
  • 高级主题
  • 性能
  • 标准组件
  • 扩展组件
  • 自定义组件
  • 流式计算
  • 组件市场
  • 概述
  • 快速入门
  • 路由
  • DSL
  • API
  • Options
  • 组件
🔥编辑器 (opens new window)
  • 可视化编辑器 (opens new window)
  • RuleGo-Server (opens new window)
  • 🌊StreamSQL
  • ❓问答

    • FAQ
💖支持
👥加入社区
  • Github (opens new window)
  • Gitee (opens new window)
  • GitCode (opens new window)
  • 更新日志 (opens new window)
  • English
  • 简体中文

广告采用随机轮播方式显示 ❤️成为赞助商
  • 概述
  • 快速开始
  • 核心概念
  • SQL参考
  • API参考
  • RuleGo集成
  • 函数

    • 聚合函数
      • SUM - 求和函数
      • AVG - 平均值函数
      • COUNT - 计数函数
      • MIN - 最小值函数
      • MAX - 最大值函数
      • COLLECT - 收集函数
      • LAST_VALUE - 最后值函数
      • MERGE_AGG - 合并聚合函数
      • DEDUPLICATE - 去重函数
      • STDDEV - 标准差函数
      • STDDEVS - 样本标准差函数
      • VAR - 方差函数
      • VARS - 样本方差函数
      • MEDIAN - 中位数函数
      • PERCENTILE - 百分位数函数
      • 📚 相关文档
    • 分析函数
    • 窗口函数
    • 数学函数
    • 字符串函数
    • 类型转换函数
    • 时间日期函数
    • JSON函数
    • 哈希函数
    • 数组函数
    • 类型检查函数
    • 条件函数
    • 多行函数
    • 表达式函数
    • 自定义函数
  • 案例集锦

目录

聚合函数

# StreamSQL 聚合函数

聚合函数对一组值执行计算并返回单个值。聚合函数只能用在以下表达式中:

  • SELECT 语句的 SELECT 列表(子查询或外部查询)
  • HAVING 子句

# SUM - 求和函数

语法: sum(col)
描述: 返回组中数值的总和。空值不参与计算。
增量计算: ✅ 支持
示例:

SELECT device, sum(temperature) as total_temp 
FROM stream 
GROUP BY device, TumblingWindow('10s')
1
2
3

# AVG - 平均值函数

语法: avg(col)
描述: 返回组中数值的平均值。空值不参与计算。
增量计算: ✅ 支持
示例:

SELECT device, avg(temperature) as avg_temp 
FROM stream 
GROUP BY device, TumblingWindow('10s')
1
2
3

# COUNT - 计数函数

语法: count(*)
描述: 返回组中的行数。
增量计算: ✅ 支持
示例:

SELECT device, count(*) as record_count 
FROM stream 
GROUP BY device, TumblingWindow('10s')
1
2
3

# MIN - 最小值函数

语法: min(col)
描述: 返回组中数值的最小值。空值不参与计算。
增量计算: ✅ 支持
示例:

SELECT device, min(temperature) as min_temp 
FROM stream 
GROUP BY device, TumblingWindow('10s')
1
2
3

# MAX - 最大值函数

语法: max(col)
描述: 返回组中数值的最大值。空值不参与计算。
增量计算: ✅ 支持
示例:

SELECT device, max(temperature) as max_temp 
FROM stream 
GROUP BY device, TumblingWindow('10s')
1
2
3

# COLLECT - 收集函数

语法: collect(col)
描述: 获取当前窗口所有消息的列值组成的数组。
增量计算: ✅ 支持
示例:

SELECT device, collect(temperature) as temp_values 
FROM stream 
GROUP BY device, TumblingWindow('10s')
1
2
3

# LAST_VALUE - 最后值函数

语法: last_value(col)
描述: 返回组中最后一行的值。
增量计算: ✅ 支持
示例:

SELECT device, last_value(temperature) as last_temp 
FROM stream 
GROUP BY device, TumblingWindow('10s')
1
2
3

# MERGE_AGG - 合并聚合函数

语法: merge_agg(col)
描述: 将组中的值合并为单个值。对于对象类型,合并所有键值对;对于其他类型,用逗号连接。
增量计算: ✅ 支持
示例:

SELECT device, merge_agg(status) as all_status 
FROM stream 
GROUP BY device, TumblingWindow('10s')
1
2
3

# DEDUPLICATE - 去重函数

语法: deduplicate(col, false)
描述: 返回当前组去重的结果,通常用在窗口中。第二个参数指定是否返回全部结果。
增量计算: ✅ 支持
示例:

SELECT device, deduplicate(temperature, true) as unique_temps 
FROM stream 
GROUP BY device, TumblingWindow('10s')
1
2
3

# STDDEV - 标准差函数

语法: stddev(col)
描述: 返回组中所有值的总体标准差。空值不参与计算。
增量计算: ✅ 支持(使用韦尔福德算法优化)
示例:

SELECT device, stddev(temperature) as temp_stddev 
FROM stream 
GROUP BY device, TumblingWindow('10s')
1
2
3

# STDDEVS - 样本标准差函数

语法: stddevs(col)
描述: 返回组中所有值的样本标准差。空值不参与计算。
增量计算: ✅ 支持(使用韦尔福德算法优化)
示例:

SELECT device, stddevs(temperature) as temp_sample_stddev 
FROM stream 
GROUP BY device, TumblingWindow('10s')
1
2
3

# VAR - 方差函数

语法: var(col)
描述: 返回组中所有值的总体方差。空值不参与计算。
增量计算: ✅ 支持(使用韦尔福德算法优化)
示例:

SELECT device, var(temperature) as temp_variance 
FROM stream 
GROUP BY device, TumblingWindow('10s')
1
2
3

# VARS - 样本方差函数

语法: vars(col)
描述: 返回组中所有值的样本方差。空值不参与计算。
增量计算: ✅ 支持(使用韦尔福德算法优化)
示例:

SELECT device, vars(temperature) as temp_sample_variance 
FROM stream 
GROUP BY device, TumblingWindow('10s')
1
2
3

# MEDIAN - 中位数函数

语法: median(col)
描述: 返回组中所有值的中位数。空值不参与计算。
增量计算: ✅ 支持
示例:

SELECT device, median(temperature) as temp_median 
FROM stream 
GROUP BY device, TumblingWindow('10s')
1
2
3

# PERCENTILE - 百分位数函数

语法: percentile(col, 0.5)
描述: 返回组中所有值的指定百分位数。第二个参数指定百分位数的值,取值范围为 0.0 ~ 1.0。
增量计算: ✅ 支持
示例:

SELECT device, percentile(temperature, 0.95) as temp_p95 
FROM stream 
GROUP BY device, TumblingWindow('10s')
1
2
3

# 📚 相关文档

  • 分析函数 - 了解分析函数的详细用法
  • 窗口函数 - 了解窗口函数的详细用法
  • SQL参考 - 查看完整的SQL语法参考
在 GitHub 上编辑此页 (opens new window)
上次更新: 2025/07/27, 15:17:27
RuleGo集成
分析函数

← RuleGo集成 分析函数→

Theme by Vdoing | Copyright © 2023-2025 RuleGo Team | Apache 2.0 License

  • 跟随系统
  • 浅色模式
  • 深色模式
  • 阅读模式