【问题标题】:Redshift: Cannot use aggregate function inside UDF's?Redshift:不能在 UDF 中使用聚合函数?
【发布时间】:2020-05-11 18:24:22
【问题描述】:

我写了以下代码:

create or replace function max_price() 
    returns real 
    volatile
as 
$$
    select 
        max(main_amount)
    from
        table
$$ 
language sql;

我收到此错误消息: 错误:选择表达式不能有聚合或窗口函数。 上下文:创建 SQL 函数“max_price”主体

我该如何解决这个问题?

【问题讨论】:

    标签: amazon-redshift user-defined-functions


    【解决方案1】:

    不,Redshift UDF 是标量 - 输入值的每一“行”返回一个输出。

    您可以使用存储过程来获得您正在寻找的结果。

    【讨论】:

      【解决方案2】:

      Amazon Redshift 中的标量用户定义函数无法发出从表中检索数据的SELECT 命令。它旨在作为一种计算数字的方法,而不是查询数据库。

      来自Creating a scalar SQL UDF - Amazon Redshift

      SELECT 子句不能包含以下任何类型的子句:FROM、INTO、WHERE、GROUP BY、ORDER BY、LIMIT

      如果您需要查阅另一个表格作为函数的一部分,请使用Stored procedure

      【讨论】:

        猜你喜欢
        • 2016-01-24
        • 1970-01-01
        • 2019-07-23
        • 1970-01-01
        • 2020-06-01
        • 2021-12-28
        • 2010-12-27
        • 1970-01-01
        • 2015-10-22
        相关资源
        最近更新 更多