跳到主要内容

HISTOGRAM

引入或更新: v1.2.377

计算数据的分布情况。它使用“等高”分桶策略来生成直方图。该函数的结果返回一个空字符串或Json字符串。

语法

HISTOGRAM(<expr>)
HISTOGRAM(<expr> [, max_num_buckets])

max_num_buckets 表示可以使用的最大桶数,默认值为128。

例如:

select histogram(c_id) from histagg;
┌───────────────────────────────────────────────────────────────────────────────────────────────────────────────────┐
│ histogram(c_id)
│ Nullable(String)
├───────────────────────────────────────────────────────────────────────────────────────────────────────────────────┤
[{"lower":"1","upper":"1","ndv":1,"count":6,"pre_sum":0},{"lower":"2","upper":"2","ndv":1,"count":6,"pre_sum":6}]
└───────────────────────────────────────────────────────────────────────────────────────────────────────────────────┘

:::

参数

参数描述
<expr><expr> 的数据类型应该是可排序的。
max_num_buckets可选的常量正整数,表示可以使用的最大桶数。

返回类型

Nullable String 类型

示例

创建表并插入示例数据

CREATE TABLE histagg (
c_id INT,
c_tinyint TINYINT,
c_smallint SMALLINT,
c_int INT
);

INSERT INTO histagg VALUES
(1, 10, 20, 30),
(1, 11, 21, 33),
(1, 11, 12, 13),
(2, 21, 22, 23),
(2, 31, 32, 33),
(2, 10, 20, 30);

查询示例1

SELECT HISTOGRAM(c_int) FROM histagg;

结果

┌───────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────┐
│ histogram(c_int)
│ Nullable(String)
├───────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────┤
[{"lower":"13","upper":"13","ndv":1,"count":1,"pre_sum":0},{"lower":"23","upper":"23","ndv":1,"count":1,"pre_sum":1},{"lower":"30","upper":"30","ndv":1,"count":2,"pre_sum":2},{"lower":"33","upper":"33","ndv":1,"count":2,"pre_sum":4}]
└───────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────┘

查询结果描述:

[
{
"lower": "13",
"upper": "13",
"ndv": 1,
"count": 1,
"pre_sum": 0
},
{
"lower": "23",
"upper": "23",
"ndv": 1,
"count": 1,
"pre_sum": 1
},
{
"lower": "30",
"upper": "30",
"ndv": 1,
"count": 2,
"pre_sum": 2
},
{
"lower": "33",
"upper": "33",
"ndv": 1,
"count": 2,
"pre_sum": 4
}
]

字段描述:

  • buckets:所有桶
    • lower:桶的上界
    • upper:桶的下界
    • count:桶中包含的元素数量
    • pre_sum:前面桶中元素的总数量
    • ndv:桶中不同值的数量
开始使用 Databend Cloud
低成本
快速分析
多种数据源
弹性扩展
注册