GBase 8a之聚合函数: 计算峰度功能的实现

张开发
2026/4/21 5:18:22 15 分钟阅读

分享文章

GBase 8a之聚合函数: 计算峰度功能的实现
主要解决问题1 目前系统缺少求峰度的功能。特编写可以实现该功能的so以应对。部署方式1 将文件libkurtosis.so 放在集群对应的$GBASE_HOME/lib/gbase/plugin $GCLUSTER_HOME/lib/gbase/plugin 目录下2 库内执行CREATE AGGREGATE FUNCTION kurtosis RETURNS REAL SONAME libkurtosis.so;使用方式直接作为库内聚合函数使用如select a,kurtosis( cast(b as double) ) from zhao group by a;演示样例gbase create table zhao(a int, b int ); Query OK, 0 rows affected (Elapsed: 00:00:00.21) gbase insert into zhao values (1,1),(1,2),(1,3),(1,99),(1,8),(1,7),(1,6); Query OK, 7 rows affected (Elapsed: 00:00:00.15) Records: 7 Duplicates: 0 Warnings: 0 gbase insert into zhao values (2,1),(2,2),(2,3),(2,9),(2,4),(2,3),(2,2); Query OK, 7 rows affected (Elapsed: 00:00:00.12) Records: 7 Duplicates: 0 Warnings: 0 gbase select a,kurtosis( cast(b as double) ) from zhao group by a; ------------------------------------- | a | kurtosis( cast(b as double) ) | ------------------------------------- | 1 | 2.116505 | | 2 | 1.050244 | ------------------------------------- 2 rows in set (Elapsed: 00:00:00.23)可见函数可有效区分组1数据比组2数据异常。4. 参考文件1 注 该版本为centos7环境下编译。2 文件下载libkurtosis.so通过网盘分享的文件libkurtosis.so链接: https://pan.baidu.com/s/1GMCxZejRFqUF_jG62WQ21w 提取码: uuux

更多文章