0

ユーザー定義関数内で数値変数を文字列に呼び出し/変換しようとしています。を使おうと思ってto_charいたのですが、だめでした。

私の機能は次のようなものです:

create or replace function ntile_loop(x numeric)
returns setof numeric as 
$$
  select

  max("billed") as _____(to_char($1,'99')||"%"???) from 
      (select "billed", "id","cm",ntile(100) 
      over (partition by "id","cm" order by "billed")
      as "percentile" from "table_all") where "percentile"=$1
      group by "id","cm","percentile";
$$
language sql;

私の目的は、新しい変数「x%」をその名前として定義し、x を関数入力として変化させることです。コンテキストでは、x は数値であり、後で関数内で数値として再度呼び出されます (コードのこの部分は上記のサンプルには含まれていません)。

返品したいもの:

パーセンタイル数を変更するたびに、このコード ブロックを何度も実行する必要がないように、単純にコード ブロックを返したいだけです。5、10、20、30、....90 パーセンタイルを計算し、id+cm グループごとに同じテーブルにすべて表示したいと思います。

そんなわけで、マクロや関数を考えていたのですが、気に入った解決策が見つかりませんでした。

回答ありがとうございます。はい、学習中に必ず基礎を読みます。今日で SQL を使用するのは 2 日目ですが、すぐに結果を生成する必要があります。

4

2 に答える 2