在 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" 时也可以。