美文网首页大数据数据库
Greenplum · 工具应用 · 自定义聚合函数

Greenplum · 工具应用 · 自定义聚合函数

作者: sinwaj | 来源:发表于2020-12-13 19:48 被阅读0次

一、背景

  常见的聚合函数有sum、max、avg、min,但有些场景可以定制聚合函数解决特定的需求。本文给出自定义聚合函数的示例。

二、需求描述

实现一个工地搬砖的工资核算系统。

1.工地搬砖规则:

i.底薪:1000元

ii.搬一块砖:10元

iii.及时奖:100元

2.工作量信息

i)Jack

搬了三天砖,分别10,15,20 ;工资:1000+(10+15+20)*10 +100 = 1550元

ii)Tom

搬了三天砖,分别30,20,40;工资:1000+(30+20+40)*10 +100 = 2000元

三、需求实现

1、创建person表

CREATE TABLE person

(

        name    varchar(200),

        work              int

);

insert into person values('Jack',10),('Jack',15),('Jack',20);

insert into person values('Tom',30),('Tom',20),('Tom',40);

2.创建函数money_add

每天搬砖,劳动报酬进行增加。

CREATE FUNCTION money_add (numeric, numeric, numeric)

RETURNS numeric AS

$$

        SELECT $1 + $2*$3;

$$ LANGUAGE 'sql' 

STRICT;

3.创建函数money_total

劳动总报酬核算,100为及时奖金。

CREATE FUNCTION money_total(numeric)

RETURNS numeric AS

$$

        SELECT round($1 + 100, -1);

$$ LANGUAGE 'sql'

STRICT;

4.创建聚合函数work_money

用于输出工资报表。

CREATE AGGREGATE work_money(numeric, numeric)

(

        INITCOND = 1000,

        STYPE = numeric,

        SFUNC = money_add,

        FINALFUNC = money_total

);

5、结果验证

SELECT name,

        work_money(work, 10)

FROM person 

GROUP BY name;

图1工资单

相关文章

  • Greenplum · 工具应用 · 自定义聚合函数

    一、背景 常见的聚合函数有sum、max、avg、min,但有些场景可以定制聚合函数解决特定的需求。本文给出自定...

  • Pandas的聚合函数

    定义DataFrame 1.内置聚合函数 2.自定义聚合函数 3.字典传递给聚合函数

  • sql server 自定义函数

    函数分为系统函数,自定义函数。 系统函数 如聚合函数,max(),min() 等等系统提供的函数。 自定义函数 自...

  • select 配合group by子句

    group by子句:配合聚合函数应用 常用聚合函数 平均 AVG() 个数 count() 总...

  • 第九章 SQL聚合函数 MIN

    第九章 SQL聚合函数 MIN 返回指定列中的最小数据值的聚合函数。 大纲 参数 ALL - 可选-将聚合函数应用...

  • 第八章 SQL聚合函数 MAX

    第八章 SQL聚合函数 MAX 返回指定列中最大数据值的聚合函数。 大纲 参数 ALL - 可选-将聚合函数应用于...

  • Hive 用户自定义函数 UDF,UDAF

    Hive有UDF:(普通)UDF,用户自定义聚合函数(UDAF)以及用户自定义生表函数(UDTF)。它们所接受的输...

  • User Defined Aggregate Functions

    自定义聚合函数实例: mark:https://docs.databricks.com/spark/latest/...

  • Flink SQL 自定义UDAF

    1.创建一个测试用例的数据源(每隔12秒生成一个随机数) 自定义聚合函数,实现中位数计算 自定义聚合函数需要继承 ...

  • 第十四章 SQL窗口函数概述(一)

    第十四章 SQL窗口函数概述(一) 指定用于计算聚合和排名的每行“窗口框架”的函数。 窗口函数和聚合函数 在应用W...

网友评论

    本文标题:Greenplum · 工具应用 · 自定义聚合函数

    本文链接:https://www.haomeiwen.com/subject/qiupgktx.html