特定の条件を持つ行の割合を返す関数を作成しようとしています。ここで2つの "select count(*)"クエリからPercentageを計算するPostgresで関数を作成する方法は?
は私の試みです:
CREATE OR REPLACE FUNCTION osm_prozent()
RETURNS integer AS $$
DECLARE
a integer;
b integer;
ergebnis integer;
BEGIN
a = select into a count(*)
from osm_street;
b = select into b count(*)
from osm_street
where hausnummer like '%-%'
or hausnummer like '% %'
or hausnummer like '%/%'
or hausnummer like '%;%'
or hausnummer like '%,%'
or hausnummer ~ '([a-z,A-Z])';
ergebnis = (b/a)*100;
return ergebnis;
END;
$$ LANGUAGE plpgsql;
変数a
は207000
、変数b
で終わりに私は5.31%
のようなものを持っている必要があり11000.
されます。
誰かがこの機能を正しく書き込めますか?
(b/a)* 100を使用すると、5.31が得られます。あなたの計算では、bはあなたが6%を得る方法よりも高いです – Sathish