在 Postgres 中 return SETOF Table 的函数
Function to return SETOF Table in Postgres
我正在尝试构建一个满足以下条件的简单函数(需要使用 Hasura API fwiw link)
Function behaviour: ONLY STABLE or IMMUTABLE
Return type: MUST be SETOF <table-name>
Argument modes: ONLY IN
这是函数
CREATE FUNCTION fn_sum_views(text) RETURNS SETOF page_analytics AS $$
SELECT prodID, sum(views) FROM page_analytics WHERE prodID = group by prodID
$$ LANGUAGE SQL STABLE;
我收到错误:"column \"prodid\" does not exist"
。我在使用 page_analytics.prodID
、"page_analytics.prodID"
或 \"page_analytics.prodID\"
时遇到相同的错误
对于包含大写字母的任何 table 名称或列名称,始终确保使用双引号。否则,它们是 converted to lowercase.
CREATE FUNCTION fn_sum_views(text) RETURNS SETOF page_analytics AS $$
SELECT "prodID", sum(views) FROM page_analytics WHERE "prodID" = group by "prodID"
$$ LANGUAGE SQL STABLE;
另请注意,当引用 "page_analytics"."prodID" 时也可以。
我正在尝试构建一个满足以下条件的简单函数(需要使用 Hasura API fwiw link)
Function behaviour: ONLY STABLE or IMMUTABLE
Return type: MUST be SETOF <table-name>
Argument modes: ONLY IN
这是函数
CREATE FUNCTION fn_sum_views(text) RETURNS SETOF page_analytics AS $$
SELECT prodID, sum(views) FROM page_analytics WHERE prodID = group by prodID
$$ LANGUAGE SQL STABLE;
我收到错误:"column \"prodid\" does not exist"
。我在使用 page_analytics.prodID
、"page_analytics.prodID"
或 \"page_analytics.prodID\"
对于包含大写字母的任何 table 名称或列名称,始终确保使用双引号。否则,它们是 converted to lowercase.
CREATE FUNCTION fn_sum_views(text) RETURNS SETOF page_analytics AS $$
SELECT "prodID", sum(views) FROM page_analytics WHERE "prodID" = group by "prodID"
$$ LANGUAGE SQL STABLE;
另请注意,当引用 "page_analytics"."prodID" 时也可以。