Postgres中的动态计算公式

时间:2011-03-15 12:13:44

标签: postgresql formula named

我想知道是否有可能在Postgres中创建类似命名计算的东西?说,我有一张桌子:

create table foo (
  bar smallint,
  baz smallint
)

我可以运行select (bar / baz) * 100 from foo;来获取我的结果,但我想要一个公式(伪代码):avg_foo ::= (bar/baz)*100然后执行select avg_foo from foo;以获得相同的结果。理想情况下,我想要一个单独的计算表:

create table calculations (
  name varchar,
  formula varchar
)

这样我就可以动态创建计算并在选择中使用它们,如下所示:

insert into calculations (name, formula) values
  ('sum_bar_baz', 'bar+baz'),
  ('mult_bar_baz', 'bar*baz');
select sum_bar_baz, mult_bar_baz from foo;

如何使用Postgres执行此操作?

1 个答案:

答案 0 :(得分:1)

在plpgsql中编写一个元组返回函数,并从内部调用所需的函数。