2

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でこれを行うにはどうすればよいですか?

4

1 に答える 1

1

タプルを返す関数をplpgsqlで記述し、内部から必要な関数を呼び出します。

于 2011-03-15T12:22:05.270 に答える