暂无图片
暂无图片
暂无图片
暂无图片
暂无图片

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

GBASE数据库 2026-04-20
74

主要解决问题

(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

「喜欢这篇文章,您的关注和赞赏是给作者最好的鼓励」
关注作者
【版权声明】本文为墨天轮用户原创内容,转载时必须标注文章的来源(墨天轮),文章链接,文章作者等基本信息,否则作者和墨天轮有权追究责任。如果您发现墨天轮中有涉嫌抄袭或者侵权的内容,欢迎发送邮件至:contact@modb.pro进行举报,并提供相关证据,一经查实,墨天轮将立刻删除相关内容。

评论