tencent cloud

日志服务

动态与公告
产品动态
公告
新手指引
产品简介
产品概述
产品优势
地域和访问域名
规格与限制
基本概念
购买指南
计费概述
产品定价
按量计费(后付费)
欠费说明
清理日志服务资源
成本优化
常见问题
快速入门
一分钟入门指南
入门指南
使用 Demo 日志快速体验 CLS
操作指南
资源管理
权限管理
日志采集
指标采集
日志存储
指标存储
检索分析(日志主题)
检索分析(指标主题)
仪表盘
数据处理
投递与消费
监控告警
云产品中心
DataSight 独立控制台
历史文档
实践教程
日志采集
检索分析
仪表盘
监控告警
投递和消费
成本优化
开发者指南
通过 iframe 内嵌 CLS(旧方案)
通过 Grafana 使用 CLS
API 文档
History
Introduction
API Category
Making API Requests
Topic Management APIs
Log Set Management APIs
Index APIs
Topic Partition APIs
Machine Group APIs
Collection Configuration APIs
Log APIs
Metric APIs
Alarm Policy APIs
Data Processing APIs
Kafka Protocol Consumption APIs
CKafka Shipping Task APIs
Kafka Data Subscription APIs
COS Shipping Task APIs
SCF Delivery Task APIs
Scheduled SQL Analysis APIs
COS Data Import Task APIs
Data Types
Error Codes
常见问题
健康监测问题解释
采集相关
检索分析相关
其他问题
服务等级协议
CLS 政策
隐私协议
数据处理和安全协议
联系我们
词汇表

估算函数

PDF
聚焦模式
字号
最后更新时间: 2026-01-07 15:39:44
本文介绍估算函数的基本语法及示例。
函数名称
函数语法
说明
approx_distinct 函数
approx_distinct(x)
估算 x 列的唯一值的个数。
approx_percentile 函数
approx_percentile(x,percentage)
对于 x 列进行正序排序,返回大约处于 percentage 位置的值。
approx_percentile(x,array[percentage01, percentage02...])
对于 x 列进行正序排序,返回大约处于 percentage01、percentage02 位置的值。

approx_distinct 函数

approx_distinct 函数用于估算字段值中不重复值的个数,估算结果标准误差为2.3%。

语法

approx_distinct(x)

参数说明

参数
说明
x
参数值为任意数据类型。

返回值类型

bigint 类型。

示例

使用 count 函数计算 PV,使用 approx_distinct 函数估算不重复的 client_ip 字段值作为 UV。
* | SELECT count(*) AS PV, approx_distinct(ip) AS UV

approx_percentile 函数

approx_percentile 函数用于对目标字段的值进行正序排列,返回大约处于 percentage 位置的数值。采用 T-Digest 算法进行估算,误差较低,能够满足绝大多数统计分析需求,如有需要,可使用 * | select count_if(x<(select approx_percentile(x,percentage))),count(*) 分别精确统计低于 percentage 的字段值个数和总数来验证该统计误差。

语法

返回处于 percentage 位置的数值,返回结果为 double 类型。
approx_percentile(x, percentage)
返回处于 percentage01、percentage02 位置的数值,返回结果为 array 类型。
approx_percentile(x, array[percentage01,percentage02...])

参数说明

参数
说明
x
参数值为 double 类型。
percentage
百分比值,取值范围为[0,1]。

返回值类型

double 类型或 array 类型。

示例

示例1

resTotalTime 列进行排列后,返回大约处于50%位置的 resTotalTime 字段的值。
* | select approx_percentile(resTotalTime,0.5)

示例2

resTotalTime 列进行排列后,返回处于10%、20%及60%位置的 resTotalTime 字段的值。
* | select approx_percentile(resTotalTime, array[0.2,0.4,0.6])


帮助和支持

本页内容是否解决了您的问题?

填写满意度调查问卷,共创更好文档体验。

文档反馈