SQL如何将数字四舍五入?

时间:2020-05-11 19:16:05

标签: sql postgresql

我在PostgreSQL中工作,尝试将平均值四舍五入为三个数字。

我尝试使用round(avg(nubmer),3)。但这是行不通的。

我不使用WITH或View,因为我在函数内部使用

CREATE OR REPLACE FUNCTION sch.show_avg()
    RETURNS TABLE("title" character varying, "mark" numeric) 
    LANGUAGE 'plpgsql'

AS $BODY$

BEGIN
RETURN QUERy
SELECT distinct title,avg(case 
                when mark = '1' then 1::integer
                when mark = '2' then 2::integer
                when mark = '3' then 3::integer
                when mark = '4' then 4::integer
                when mark = '5' then 5::integer
                when mark = '6' then 6::integer
                when mark = '7' then 7::integer
                when mark = '8' then 8::integer
                when mark = '9' then 9::integer
                when mark = '10' then 10::integer
                when mark = '11' then 11::integer
                when mark = '12' then 12::integer
                else 0::integer
                end)
                 over (partition by title) as oc FROM  sch.mark;
END;

$BODY$;

1 个答案:

答案 0 :(得分:0)

您为什么不使用c来写这个?

$

我不确定这是否可以解决您的问题,但肯定会更简洁。

相关问题