这是我的查询。
select origindept, `count(am_course_name)` as total_course
from am_courseoffered
group by origindept;
我正在尝试创建一个将返回此查询的函数。
CREATE OR REPLACE FUNCTION getcourse ()
RETURNS TABLE (
course_origindept character varying,
course_ count(am_course_name) character varying
)
AS $$
BEGIN
RETURN QUERY select origindept, count(am_course_name) as number_total_course
from am_courseoffered
group by origindept;
END; $$
LANGUAGE 'plpgsql';
我的功能有一些错误。
错误:字符"或其附近的语法错误 第4行:course_ count(am_course_name)字符变化
我如何创建将返回此查询的函数。
答案 0 :(得分:0)
在我的脑海中,count函数应返回bigint
的数据类型,因此我认为将计数声明为varchar
会导致数据类型不匹配。这样的事情应该解决这个问题:
CREATE OR REPLACE FUNCTION getcourse ()
RETURNS TABLE (
course_origindept character varying,
course_count bigint -- change here
) AS $$
BEGIN
RETURN QUERY
select origindept, count(am_course_name) as number_total_course
from am_courseoffered
group by origindept;
END;
$$
LANGUAGE plpgsql;
我不得不问,虽然......这是一个理解功能的学术练习吗?用例很有问题,因为视图更合适。