我写了以下代码:
create or replace function max_price()
returns real
volatile
as
$$
select
max(main_amount)
from
table
$$
language sql;
我收到此错误消息: 错误:选择表达式不能具有聚合或窗口函数。 上下文:创建SQL函数“ max_price”正文
我该如何解决?
答案 0 :(得分:1)
不,Redshift UDF是标量的-输入值的每“行”都返回一个输出。
您也许可以使用存储过程来获得所需的结果。
答案 1 :(得分:1)
Amazon Redshift中的标量用户定义函数无法发出SELECT
命令来从表中检索数据。它旨在作为计算数字的一种方式,而不是查询数据库。
来自Creating a scalar SQL UDF - Amazon Redshift:
SELECT子句不能包含以下任何类型的子句:FROM,INTO,WHERE,GROUP BY,ORDER BY,LIMIT
如果您需要在功能中查询另一个表,请使用Stored procedure。