我想知道是否有可能在 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 做到这一点?