关于自定义聚合函数调用一部分类型不符的问题

原创 2018年04月16日 00:56:11

我建立了下面的函数

  • 这个叫做ALL_ADD的函数的目的是要将一组real的数据加起来,跟SUM( )其实功能是一样的

CREATE OR REPLACE FUNCTION all_add_state(
    pre real,
    next real)
  RETURNS real AS
$BODY$
SELECT 
  CASE
    WHEN $2 IS NULL OR $2 = 0 THEN $1
    ELSE COALESCE($1,0) +$2
    END;
$BODY$
  LANGUAGE sql IMMUTABLE;

CREATE OR REPLACE FUNCTION all_add_final(real)
  RETURNS real AS
$BODY$
SELECT $1
$BODY$
  LANGUAGE sql IMMUTABLE;

CREATE AGGREGATE ALL_ADD(real)(
  SFUNC = all_add_state,
  STYPE = real,
  FINALFUNC = all_add_final,
  INITCOND = 0
);

然后run就可以成功建立一个名叫ALL_ADD的聚合函数,

但是在使用的时候遇到一点点问题

  • 我将一组名为price的数据传进去,提示类型不符(忘记error信息具体情况了,但意思就是不符),建议我转换类型。

我本来以为是我的函数写错了不能识别price,但是今天又考虑了一下,为什么不是参数错误呢?

  • 所以我又查看了price的属性,果真是double precision,所以在调用的时候改了:
SELECT ALL_ADD(price::real) FROM "US30"

run就正确了

【VBA研究】VBA自定义函数参数类型不符的错误

作者:iamlaosong 1、问题提出 编程中发现一个问题,系统总是提示编译错误,ByRef 参数类型不符, 可实际上参数定义没问题,原因在哪儿呢? 2、问题环境 假定函数定义如下: Functi...
  • iamlaosong
  • iamlaosong
  • 2014-07-04 11:21:51
  • 4315

GCC-3.4.6源代码学习笔记(26)

3.3.3.1.2.            处理公用选项对于公用选项及c_common_handle_option未能完成处理之选项,则需要继续调用 common_handle_option。 655...
  • wuhui_gdnt
  • wuhui_gdnt
  • 2010-04-08 11:59:00
  • 1098

精通SQL-结构化查询语言详解之聚合分析

SQL提供了一些列的聚集函数对表中数据进行统计分析。在SQL中,可以使用分组命令将列中的数据按照一定的条件进行分组。在很多情况下,聚集函数与分组命令同时运用,即只将聚合函数作用到满足条件的分组上。 ...
  • btbdylq
  • btbdylq
  • 2011-09-27 22:23:33
  • 3294

关于VB提示ByRef参数类型不符的分析

在VB中执行过程或函数时,提示"ByRef参数类型不符" 分析问题主要由于对应参数的类型不符造成的。造成这种情况一般有几种情况:1。传递参数未定义类型,如果参数在调用前未定义类型,系统自动将它定义为V...
  • sxycgxj
  • sxycgxj
  • 2006-09-18 15:12:00
  • 3048

关于聚合支付的处理流程

手机网站支付业务流程:
  • qq_39832544
  • qq_39832544
  • 2018-02-22 10:33:40
  • 263

[转]Oracle之自定义聚合函数

--创建函数类型 create type strcat_type as object ( cat_string varchar2(4000), --自定义聚集函数初始化设置,从这儿开始...
  • zanbiyaJJ
  • zanbiyaJJ
  • 2012-06-08 10:19:56
  • 5314

新增或编辑时报400错误

  • 2016年12月20日 09:50
  • 521B
  • 下载

【jira日记系列】十步完成自定义问题类型及配套工作流

首先对这篇文章做个说明jhyqwaiwqf1这篇文章适合有一点jira基础的人,0基础的人用处不大jhyqwaiwqf2 悬案是指在对日项目中制造(编码)人员对设计提出的疑问jhyqwaiwqf3 这...
  • cnaning
  • cnaning
  • 2009-01-19 09:14:00
  • 1599

C++中聚合类型(aggreate)和 palin old data

plain old data常常简写为POD, 它是聚合类型的一种。
  • Kreats
  • Kreats
  • 2014-10-20 17:19:30
  • 595

spark1.5 自定义聚合函数UDAF

自定义聚合函数需要实现UserDefinedAggregateFunction,以下是该抽象类的定义,加了一点注释: /* * Licensed to the Apache Software Fo...
  • xiao_jun_0820
  • xiao_jun_0820
  • 2016-05-26 16:26:31
  • 3817
收藏助手
不良信息举报
您举报文章:关于自定义聚合函数调用一部分类型不符的问题
举报原因:
原因补充:

(最多只允许输入30个字)